! The weird thing is that we need the spell that triggered this enchant spell in order to output logs ..we are using oldspell info too
11607{
11608 if (flag == 0)
11609 return 0;
11610
11614
11615 std::list<SpellProc*> happenedProcs;
11616
11618 {
11619 auto itr2 = itr++;
11621
11622
11624 {
11625 if (can_delete)
11626 {
11628 }
11629 continue;
11630 }
11631
11632
11633
11634
11635
11637 {
11639 continue;
11640 }
11641
11642 if (CastingSpell != nullptr)
11643 {
11644
11645 if (CastingSpell->getId() == spell_proc->
getSpell()->
getId())
11646 continue;
11647
11648
11650 continue;
11651 }
11652
11654 continue;
11655
11657 continue;
11658
11659
11661 continue;
11662
11663
11665 continue;
11666
11667
11668 if (!
sScriptMgr.callScriptedSpellCanProc(spell_proc, victim, CastingSpell, damageInfo))
11669 continue;
11670 if (!spell_proc->
canProc(victim, CastingSpell))
11671 continue;
11672
11673 if (CastingSpell != nullptr)
11674 {
11675
11676
11677 if (isSpellTriggered && !
sScriptMgr.callScriptedSpellCanProcOnTriggered(spell_proc, victim, CastingSpell, triggeredFromAura))
11678 continue;
11679 }
11680
11681 const auto spe = spell_proc->
getSpell();
11682
11683 auto spellId = spe->
getId();
11684
11685
11689
11690
11692
11693 auto proc_Chance =
sScriptMgr.callScriptedSpellCalcProcChance(spell_proc, victim, CastingSpell);
11694
11695
11697 {
11698
11699
11700
11702 const auto plr =
static_cast<Player*
>(
this);
11703
11704
11705 switch (spellId)
11706 {
11707
11708 case 40475:
11709 ppmAmount = 1.0f;
11710 break;
11711
11712 case 34774:
11713 ppmAmount = 1.5f;
11714 break;
11715
11716 case 34586:
11717 case 34587:
11718 ppmAmount = 1.5f;
11719 break;
11720
11721 case 8034:
11722 case 8037:
11723 case 10458:
11724 case 16352:
11725 case 16353:
11726 case 25501:
11727 case 38617:
11728 case 54609:
11729 case 58797:
11730 case 58798:
11731 case 58799:
11732 case 64186:
11733 ppmAmount = 9.0f;
11734 break;
11735 case 16870:
11736 ppmAmount = 2.0f;
11737 break;
11738 default:
11739 break;
11740 }
11741
11742
11743 if (ppmAmount != 0.0f)
11744 {
11745
11747 if (plr->isInFeralForm())
11748 {
11749#if VERSION_STRING > Classic
11750
11752 if (form != nullptr && form->AttackSpeed != 0)
11753 weaponSpeed = form->AttackSpeed;
11754#endif
11755 }
11756 else
11757 {
11759 {
11761 {
11763 if (mainHand != nullptr && mainHand->isWeapon())
11765 } break;
11767 {
11769 if (offHand != nullptr && offHand->isWeapon())
11770 weaponSpeed = offHand->getItemProperties()->Delay;
11771 } break;
11773 {
11775 if (ranged != nullptr && ranged->isWeapon())
11776 weaponSpeed = ranged->getItemProperties()->Delay;
11777 } break;
11778 default:
11779 break;
11780 }
11781 }
11782
11783 proc_Chance =
Util::float2int32((weaponSpeed * 0.001f * ppmAmount / 60.0f) * 100.0f);
11784 }
11785 }
11786
11787
11788
11790
11792 continue;
11793
11794
11796 {
11797
11799 {
11802 continue;
11803
11805 }
11806 }
11807
11808
11809
11810
11811#if VERSION_STRING >= TBC
11812
11813 for (
uint8_t i = 0; i < 3; ++i)
11814 {
11816 {
11818 sScriptMgr.callScriptedSpellProcDoEffect(spell_proc, victim, CastingSpell, damageInfo);
11820 }
11821 }
11822#endif
11823
11824
11825 const auto scriptResult =
sScriptMgr.callScriptedSpellProcDoEffect(spell_proc, victim, CastingSpell, damageInfo);
11827 continue;
11829 continue;
11830
11831
11833 {
11835 switch (origId)
11836 {
11837
11838 case 12284:
11839 {talentlevel = 1; }
11840 break;
11841 case 12701:
11842 {talentlevel = 2; }
11843 break;
11844 case 12702:
11845 {talentlevel = 3; }
11846 break;
11847 case 12703:
11848 {talentlevel = 4; }
11849 break;
11850 case 12704:
11851 {talentlevel = 5; }
11852 break;
11853
11854
11855 case 12332:
11856 {talentlevel = 1; }
11857 break;
11858 case 12999:
11859 {talentlevel = 2; }
11860 break;
11861 case 13000:
11862 {talentlevel = 3; }
11863 break;
11864 case 13001:
11865 {talentlevel = 4; }
11866 break;
11867 case 13002:
11868 {talentlevel = 5; }
11869 break;
11870 }
11871
11872 switch (spellId)
11873 {
11874 case 32747:
11875 {
11876 if (CastingSpell == NULL)
11877 continue;
11878
11879 switch (CastingSpell->getId())
11880 {
11881 case 26679:
11882 case 37074:
11883 case 48673:
11884 case 48674:
11885 case 52885:
11886 case 59180:
11887 case 64499:
11888 break;
11889 default:
11890 continue;
11891 }
11892 }
11893 break;
11894 case 16959:
11895 {
11897 continue;
11900 continue;
11901 }
11902 break;
11903 case 16953:
11904 {
11906 continue;
11907
11910 continue;
11911
11912 switch (CastingSpell->getId())
11913 {
11914
11915 case 3252:
11916 case 5221:
11917 case 6800:
11918 case 8992:
11919 case 9829:
11920 case 9830:
11921 case 27001:
11922 case 27002:
11923 case 27555:
11924 case 48571:
11925 case 48572:
11926 case 49121:
11927 case 49165:
11928 case 61548:
11929 case 61549:
11930
11931 case 3242:
11932 case 3446:
11933 case 6785:
11934 case 6787:
11935 case 8391:
11936 case 9866:
11937 case 9867:
11938 case 24213:
11939 case 24333:
11940 case 27005:
11941 case 29906:
11942 case 33781:
11943 case 48578:
11944 case 48579:
11945 case 50518:
11946 case 53558:
11947 case 53559:
11948 case 53560:
11949 case 53561:
11950 case 53562:
11951
11952 case 1082:
11953 case 2975:
11954 case 2976:
11955 case 2977:
11956 case 2980:
11957 case 2981:
11958 case 2982:
11959 case 3009:
11960 case 3010:
11961 case 3029:
11962 case 3666:
11963 case 3667:
11964 case 5201:
11965 case 9849:
11966 case 9850:
11967 case 16827:
11968 case 16828:
11969 case 16829:
11970 case 16830:
11971 case 16831:
11972 case 16832:
11973 case 24187:
11974 case 27000:
11975 case 27049:
11976 case 27347:
11977 case 31289:
11978 case 47468:
11979 case 48569:
11980 case 48570:
11981 case 51772:
11982 case 52471:
11983 case 52472:
11984 case 62225:
11985 case 67774:
11986 case 67793:
11987 case 67879:
11988 case 67980:
11989 case 67981:
11990 case 67982:
11991 case 75159:
11992
11993 case 1822:
11994 case 1823:
11995 case 1824:
11996 case 9904:
11997 case 24331:
11998 case 24332:
11999 case 27003:
12000 case 27556:
12001 case 27638:
12002 case 36332:
12003 case 48573:
12004 case 48574:
12005 case 53499:
12006 case 54668:
12007 case 59881:
12008 case 59882:
12009 case 59883:
12010 case 59884:
12011 case 59885:
12012 case 59886:
12013 break;
12014 default:
12015 continue;
12016 }
12017 }
12018 break;
12019 case 14189:
12020 {
12021 if (!this->
isPlayer() || !CastingSpell || CastingSpell->getId() == 14189 || CastingSpell->getId() == 16953 || CastingSpell->getId() == 16959)
12022 continue;
12025 {
12026 switch (CastingSpell->getId())
12027 {
12028 case 33876:
12029 case 33982:
12030 case 33983:
12031 case 48565:
12032 case 48566:
12033 break;
12034 default:
12035 continue;
12036 }
12037 }
12038 }
12039 break;
12040 case 17106:
12041 {
12042 if (CastingSpell == NULL)
12043 continue;
12044 if (CastingSpell->getId() != 5229)
12045 continue;
12046 }
12047 break;
12048 case 31616:
12049 {
12050
12052 continue;
12053 }
12054 break;
12055 case 37309:
12056 {
12058 continue;
12061 continue;
12062 }
12063 break;
12064 case 37310:
12065 {
12067 continue;
12068 }
12069 break;
12070 case 16459:
12071 {
12072
12077
12078 if (item_mainhand != nullptr)
12080
12081 if (item_offhand != nullptr)
12083
12085 continue;
12086 }
12087 break;
12088 case 12721:
12089 {
12090
12092 if (item)
12093 {
12094
12095 if (item->getItemProperties()->Class != 2)
12096 continue;
12097 }
12098 else continue;
12099 }
12100 break;
12101
12102 case 50227:
12103 {
12104 if (CastingSpell == NULL)
12105 continue;
12106
12107 switch (CastingSpell->getId())
12108 {
12109
12110 case 6572:
12111 case 6574:
12112 case 7379:
12113 case 11600:
12114 case 11601:
12115 case 12170:
12116 case 19130:
12117 case 25269:
12118 case 25288:
12119 case 28844:
12120 case 30357:
12121 case 37517:
12122 case 40392:
12123 case 57823:
12124
12125 case 20243:
12126 case 30016:
12127 case 30017:
12128 case 30022:
12129 case 36891:
12130 case 36894:
12131 case 38849:
12132 case 38967:
12133 case 44452:
12134 case 47497:
12135 case 47498:
12136 case 57795:
12137 case 60018:
12138 case 62317:
12139 case 69902:
12140 break;
12141 default:
12142 continue;
12143 }
12144 } break;
12145
12146
12147 case 46946:
12148 case 46947:
12149 {
12150 if (CastingSpell == NULL)
12151 continue;
12152
12153 switch (CastingSpell->getId())
12154 {
12155
12156 case 3411:
12157 case 34784:
12158 case 41198:
12159 case 53476:
12160 case 59667:
12161 break;
12162 default:
12163 continue;
12164 }
12165 }
12166 break;
12167
12168 case 60503:
12169 {
12170 switch (CastingSpell->getId())
12171 {
12172
12173 case 772:
12174 case 6546:
12175 case 6547:
12176 case 6548:
12177 case 11572:
12178 case 11573:
12179 case 11574:
12180 case 11977:
12181 case 12054:
12182 case 13318:
12183 case 13443:
12184 case 13445:
12185 case 13738:
12186 case 14087:
12187 case 14118:
12188 case 16393:
12189 case 16403:
12190 case 16406:
12191 case 16509:
12192 case 17153:
12193 case 17504:
12194 case 18075:
12195 case 18078:
12196 case 18106:
12197 case 18200:
12198 case 18202:
12199 case 21949:
12200 case 25208:
12201 case 29574:
12202 case 29578:
12203 case 36965:
12204 case 36991:
12205 case 37662:
12206 case 43246:
12207 case 43931:
12208 case 46845:
12209 case 47465:
12210 case 48880:
12211 case 53317:
12212 case 54703:
12213 case 54708:
12214 case 59239:
12215 case 59343:
12216 case 59691:
12217 break;
12218 default:
12219 continue;
12220 }
12221 }
12222 break;
12223
12224 case 12964:
12225 {
12226
12228 if (it == nullptr)
12229 continue;
12230
12233 if (myroll > chance)
12234 continue;
12235 }
12236 break;
12237
12238 case 18498:
12239 {
12240 if (CastingSpell == NULL)
12241 continue;
12242
12243 switch (CastingSpell->getId())
12244 {
12245
12246 case 72:
12247 case 1671:
12248 case 1672:
12249 case 11972:
12250 case 29704:
12251 case 33871:
12252 case 35178:
12253 case 36988:
12254 case 38233:
12255 case 41180:
12256 case 41197:
12257 case 70964:
12258 case 72194:
12259 case 72196:
12260
12261 case 57755:
12262 break;
12263 default:
12264 continue;
12265 }
12266 }
12267 break;
12268
12269 case 46916:
12270 {
12271 if (CastingSpell == NULL)
12272 continue;
12273
12274 switch (CastingSpell->getId())
12275 {
12276 case 23881:
12277
12278 case 1680:
12279 case 8989:
12280 case 9633:
12281 case 13736:
12282 case 15576:
12283 case 15577:
12284 case 15578:
12285 case 15589:
12286 case 17207:
12287 case 24236:
12288 case 26038:
12289 case 26083:
12290 case 26084:
12291 case 26686:
12292 case 28334:
12293 case 28335:
12294 case 29573:
12295 case 29851:
12296 case 29852:
12297 case 31737:
12298 case 31738:
12299 case 31909:
12300 case 31910:
12301 case 33238:
12302 case 33239:
12303 case 33500:
12304 case 36132:
12305 case 36142:
12306 case 36175:
12307 case 36981:
12308 case 36982:
12309 case 37582:
12310 case 37583:
12311 case 37640:
12312 case 37641:
12313 case 37704:
12314 case 38618:
12315 case 38619:
12316 case 39232:
12317 case 40236:
12318 case 40653:
12319 case 40654:
12320 case 41056:
12321 case 41057:
12322 case 41058:
12323 case 41059:
12324 case 41061:
12325 case 41097:
12326 case 41098:
12327 case 41194:
12328 case 41195:
12329 case 41399:
12330 case 41400:
12331 case 43442:
12332 case 44949:
12333 case 45895:
12334 case 45896:
12335 case 46270:
12336 case 46271:
12337 case 48280:
12338 case 48281:
12339 case 49807:
12340 case 50228:
12341 case 50229:
12342 case 50622:
12343 case 52027:
12344 case 52028:
12345 case 52977:
12346 case 54797:
12347 case 55266:
12348 case 55267:
12349 case 55463:
12350 case 55977:
12351 case 56408:
12352 case 59322:
12353 case 59323:
12354 case 59549:
12355 case 59550:
12356 case 61076:
12357 case 61078:
12358 case 61136:
12359 case 61137:
12360 case 61139:
12361 case 63805:
12362 case 63806:
12363 case 63807:
12364 case 63808:
12365 case 65510:
12366 case 67037:
12367 case 67716:
12368
12369 case 78:
12370 case 284:
12371 case 285:
12372 case 1608:
12373 case 11564:
12374 case 11565:
12375 case 11566:
12376 case 11567:
12377 case 25286:
12378 case 25710:
12379 case 25712:
12380 case 29426:
12381 case 29567:
12382 case 29707:
12383 case 30324:
12384 case 31827:
12385 case 41975:
12386 case 45026:
12387 case 47449:
12388 case 47450:
12389 case 52221:
12390 case 53395:
12391 case 57846:
12392 case 59035:
12393 case 59607:
12394 case 62444:
12395 case 69566:
12396 break;
12397 default:
12398 continue;
12399 }
12400 } break;
12401
12402
12403
12404 case 12654:
12405 {
12406 if (CastingSpell == NULL)
12407 continue;
12409 continue;
12410 const auto spellInfo =
sSpellMgr.getSpellInfo(spellId);
12413
12414 if (ospinfo)
12416 }
12417 break;
12418
12419 case 37116:
12420 case 37117:
12421 {
12423 continue;
12429 continue;
12430 }
12431 break;
12432
12433 case 31125:
12434 {
12435 if (CastingSpell == NULL)
12436 continue;
12437
12438
12439 switch (CastingSpell->getId())
12440 {
12441
12442 case 1752:
12443 case 1757:
12444 case 1758:
12445 case 1759:
12446 case 1760:
12447 case 8621:
12448 case 11293:
12449 case 11294:
12450 case 14873:
12451 case 15581:
12452 case 15667:
12453 case 19472:
12454 case 26861:
12455 case 26862:
12456 case 46558:
12457 case 48637:
12458 case 48638:
12459 case 57640:
12460 case 59409:
12461 case 60195:
12462 case 69920:
12463 case 71145:
12464
12465 case 5938:
12466 case 5940:
12467
12468 case 53:
12469 case 2589:
12470 case 2590:
12471 case 2591:
12472 case 7159:
12473 case 8721:
12474 case 11279:
12475 case 11280:
12476 case 11281:
12477 case 15582:
12478 case 15657:
12479 case 22416:
12480 case 25300:
12481 case 26863:
12482 case 30992:
12483 case 34614:
12484 case 37685:
12485 case 48656:
12486 case 48657:
12487 case 52540:
12488 case 58471:
12489 case 63754:
12490 case 71410:
12491 case 72427:
12492
12493 case 1776:
12494 case 1777:
12495 case 8629:
12496 case 11285:
12497 case 11286:
12498 case 12540:
12499 case 13579:
12500 case 24698:
12501 case 28456:
12502 case 29425:
12503 case 34940:
12504 case 36862:
12505 case 38764:
12506 case 38863:
12507 break;
12508 default:
12509 continue;
12510 }
12511 }
12512 break;
12513
12514 case 47930:
12515 {
12516 if (CastingSpell == NULL)
12517 continue;
12518
12519 switch (CastingSpell->getId())
12520 {
12521
12522 case 47540:
12523 case 47666:
12524 case 47750:
12525 case 47757:
12526 case 47758:
12527 case 52983:
12528 case 52984:
12529 case 52985:
12530 case 52986:
12531 case 52987:
12532 case 52988:
12533 case 52998:
12534 case 52999:
12535 case 53000:
12536 case 53001:
12537 case 53002:
12538 case 53003:
12539 case 53005:
12540 case 53006:
12541 case 53007:
12542 case 54518:
12543 case 54520:
12544 case 66097:
12545 case 66098:
12546 case 68029:
12547 case 68030:
12548 case 68031:
12549 case 69905:
12550 case 69906:
12551 case 71137:
12552 case 71138:
12553 case 71139:
12554
12555 case 2061:
12556 case 9472:
12557 case 9473:
12558 case 9474:
12559 case 10915:
12560 case 10916:
12561 case 10917:
12562 case 17137:
12563 case 17138:
12564 case 17843:
12565 case 25233:
12566 case 25235:
12567 case 27608:
12568 case 38588:
12569 case 42420:
12570 case 43431:
12571 case 43516:
12572 case 43575:
12573 case 48070:
12574 case 48071:
12575 case 56331:
12576 case 56919:
12577 case 66104:
12578 case 68023:
12579 case 68024:
12580 case 68025:
12581 case 71595:
12582 case 71782:
12583 case 71783:
12584
12585 case 2060:
12586 case 10963:
12587 case 10964:
12588 case 10965:
12589 case 22009:
12590 case 25210:
12591 case 25213:
12592 case 25314:
12593 case 28809:
12594 case 29564:
12595 case 34119:
12596 case 35096:
12597 case 38580:
12598 case 41378:
12599 case 48062:
12600 case 48063:
12601 case 49348:
12602 case 57775:
12603 case 60003:
12604 case 61965:
12605 case 62334:
12606 case 62442:
12607 case 63760:
12608 case 69963:
12609 case 71131:
12610 case 71931:
12611 break;
12612 default:
12613 continue;
12614 }
12615 }
12616 break;
12617
12618 case 17794:
12619 case 17798:
12620 case 17797:
12621 case 17799:
12622 case 17800:
12623 {
12624 if (CastingSpell == NULL)
12625 continue;
12626
12627
12628 switch (CastingSpell->getId())
12629 {
12630
12631 case 686:
12632 case 695:
12633 case 705:
12634 case 1088:
12635 case 1106:
12636 case 7617:
12637 case 7619:
12638 case 7641:
12639 case 9613:
12640 case 11659:
12641 case 11660:
12642 case 11661:
12643 case 12471:
12644 case 12739:
12645 case 13440:
12646 case 13480:
12647 case 14106:
12648 case 14122:
12649 case 15232:
12650 case 15472:
12651 case 15537:
12652 case 16408:
12653 case 16409:
12654 case 16410:
12655 case 16783:
12656 case 16784:
12657 case 17393:
12658 case 17434:
12659 case 17435:
12660 case 17483:
12661 case 17509:
12662 case 18111:
12663 case 18138:
12664 case 18164:
12665 case 18205:
12666 case 18211:
12667 case 18214:
12668 case 18217:
12669 case 19728:
12670 case 19729:
12671 case 20298:
12672 case 20791:
12673 case 20807:
12674 case 20816:
12675 case 20825:
12676 case 21077:
12677 case 21141:
12678 case 22336:
12679 case 22677:
12680 case 24668:
12681 case 25307:
12682 case 26006:
12683 case 27209:
12684 case 29317:
12685 case 29487:
12686 case 29626:
12687 case 29640:
12688 case 29927:
12689 case 30055:
12690 case 30505:
12691 case 30686:
12692 case 31618:
12693 case 31627:
12694 case 32666:
12695 case 32860:
12696 case 33335:
12697 case 34344:
12698 case 36714:
12699 case 36868:
12700 case 36972:
12701 case 36986:
12702 case 36987:
12703 case 38378:
12704 case 38386:
12705 case 38628:
12706 case 38825:
12707 case 38892:
12708 case 39025:
12709 case 39026:
12710 case 39297:
12711 case 39309:
12712 case 40185:
12713 case 41069:
12714 case 41280:
12715 case 41957:
12716 case 43330:
12717 case 43649:
12718 case 43667:
12719 case 45055:
12720 case 45679:
12721 case 45680:
12722 case 47076:
12723 case 47248:
12724 case 47808:
12725 case 47809:
12726 case 49084:
12727 case 50455:
12728 case 51363:
12729 case 51432:
12730 case 51608:
12731 case 52257:
12732 case 52534:
12733 case 53086:
12734 case 53333:
12735 case 54113:
12736 case 55984:
12737 case 56405:
12738 case 57374:
12739 case 57464:
12740 case 57644:
12741 case 57725:
12742 case 58827:
12743 case 59016:
12744 case 59246:
12745 case 59254:
12746 case 59351:
12747 case 59357:
12748 case 59389:
12749 case 59575:
12750 case 60015:
12751 case 61558:
12752 case 61562:
12753 case 65821:
12754 case 68151:
12755 case 68152:
12756 case 68153:
12757 case 69028:
12758 case 69068:
12759 case 69211:
12760 case 69212:
12761 case 69387:
12762 case 69577:
12763 case 69972:
12764 case 70043:
12765 case 70080:
12766 case 70182:
12767 case 70208:
12768 case 70270:
12769 case 70386:
12770 case 70387:
12771 case 71143:
12772 case 71254:
12773 case 71296:
12774 case 71297:
12775 case 71936:
12776 case 72008:
12777 case 72503:
12778 case 72504:
12779 case 72901:
12780 case 72960:
12781 case 72961:
12782 case 75330:
12783 case 75331:
12784 case 75384:
12785 break;
12786 default:
12787 continue;
12788 }
12789 } break;
12790
12791
12792 case 27285:
12793 {
12794 bool can_proc_now = false;
12795
12797 {
12798 if (!CastingSpell)
12799 continue;
12800
12801 switch (CastingSpell->getId())
12802 {
12803
12804 case 27243:
12805 case 27285:
12806 case 32863:
12807 case 32865:
12808 case 36123:
12809 case 37826:
12810 case 38252:
12811 case 39367:
12812 case 43991:
12813 case 44141:
12814 case 47831:
12815 case 47832:
12816 case 47833:
12817 case 47834:
12818 case 47835:
12819 case 47836:
12820 case 70388:
12821 break;
12822 default:
12823 continue;
12824 }
12825
12826
12827 if (ospinfo && damageInfo.
realDamage < this->getHealth())
12828 can_proc_now = true;
12829 }
12830 else can_proc_now = true;
12831 if (can_proc_now == false)
12832 continue;
12833 Unit* new_caster = victim;
12834 if (new_caster && new_caster->
isAlive())
12835 {
12836 const auto spellInfo =
sSpellMgr.getSpellInfo(spellId);
12837 Spell* spell =
sSpellMgr.newSpell(new_caster, spellInfo,
true, NULL);
12841 }
12843 continue;
12844 }
12845 break;
12846
12847 case 18371:
12848 {
12849 if (!CastingSpell)
12850 continue;
12851
12852
12853 switch (CastingSpell->getId())
12854 {
12855
12856 case 1120:
12857 case 8288:
12858 case 8289:
12859 case 11675:
12860 case 18371:
12861 case 27217:
12862 case 32862:
12863 case 35839:
12864 case 47855:
12865 case 60452:
12866 break;
12867 default:
12868 continue;
12869 }
12870
12871
12872 if (ospinfo)
12874 }
12875 break;
12876
12877 case 31117:
12878 {
12879
12880 if (ospinfo)
12882 }
12883 break;
12884
12885
12886 case 17941:
12887 {
12888 if (CastingSpell == NULL)
12889 continue;
12890
12891
12892 switch (CastingSpell->getId())
12893 {
12894
12895 case 172:
12896 case 6222:
12897 case 6223:
12898 case 7648:
12899 case 11671:
12900 case 11672:
12901 case 13530:
12902 case 16402:
12903 case 16985:
12904 case 17510:
12905 case 18088:
12906 case 18376:
12907 case 18656:
12908 case 21068:
12909 case 23642:
12910 case 25311:
12911 case 27216:
12912 case 28829:
12913 case 30938:
12914 case 31405:
12915 case 32063:
12916 case 32197:
12917 case 37113:
12918 case 37961:
12919 case 39212:
12920 case 39621:
12921 case 41988:
12922 case 47782:
12923 case 47812:
12924 case 47813:
12925 case 56898:
12926 case 57645:
12927 case 58811:
12928 case 60016:
12929 case 61563:
12930 case 65810:
12931 case 68133:
12932 case 68134:
12933 case 68135:
12934 case 70602:
12935 case 70904:
12936 case 71937:
12937
12938 case 689:
12939 case 699:
12940 case 709:
12941 case 7651:
12942 case 11699:
12943 case 11700:
12944 case 12693:
12945 case 16375:
12946 case 16414:
12947 case 16608:
12948 case 17173:
12949 case 17238:
12950 case 17620:
12951 case 18084:
12952 case 18557:
12953 case 18815:
12954 case 18817:
12955 case 20743:
12956 case 21170:
12957 case 24300:
12958 case 24435:
12959 case 24585:
12960 case 24618:
12961 case 26693:
12962 case 27219:
12963 case 27220:
12964 case 27994:
12965 case 29155:
12966 case 30412:
12967 case 34107:
12968 case 34696:
12969 case 35748:
12970 case 36224:
12971 case 36655:
12972 case 36825:
12973 case 37992:
12974 case 38817:
12975 case 39676:
12976 case 43417:
12977 case 44294:
12978 case 46155:
12979 case 46291:
12980 case 46466:
12981 case 47857:
12982 case 55646:
12983 case 64159:
12984 case 64160:
12985 case 69066:
12986 case 70213:
12987 case 71838:
12988 case 71839:
12989 break;
12990 default:
12991 continue;
12992 }
12993 }
12994 break;
12995
12996 case 32386:
12997 case 32388:
12998 case 32389:
12999 case 32390:
13000 case 32391:
13001 {
13002 if (CastingSpell == NULL)
13003 continue;
13004 else
13005 {
13006 switch (CastingSpell->getId())
13007 {
13008 case 184:
13009
13010 case 980:
13011 case 1014:
13012 case 6217:
13013 case 11711:
13014 case 11712:
13015 case 11713:
13016 case 14868:
13017 case 14875:
13018 case 17771:
13019 case 18266:
13020 case 18671:
13021 case 27218:
13022 case 29930:
13023 case 32418:
13024 case 37334:
13025 case 39672:
13026 case 46190:
13027 case 47863:
13028 case 47864:
13029 case 65814:
13030 case 68136:
13031 case 68137:
13032 case 68138:
13033 case 69404:
13034 case 70391:
13035 case 71112:
13036
13037 case 35195:
13038 case 41597:
13039 case 63106:
13040 case 63108:
13041
13042 case 27243:
13043 case 27285:
13044 case 32863:
13045 case 32865:
13046 case 36123:
13047 case 37826:
13048 case 38252:
13049 case 39367:
13050 case 43991:
13051 case 44141:
13052 case 47831:
13053 case 47832:
13054 case 47833:
13055 case 47834:
13056 case 47835:
13057 case 47836:
13058 case 70388:
13059 break;
13060 default:
13061 continue;
13062 }
13063 }
13064 }
13065 break;
13066#if VERSION_STRING <= WotLK
13067
13068 case 18118:
13069 {
13070 if (CastingSpell == NULL)
13071 continue;
13072
13073
13074 auto _continue = false;
13075 const auto spellSkillRange =
sSpellMgr.getSkillEntryRangeForSpell(CastingSpell->getId());
13076 for (const auto& [_, skill_line_ability] : spellSkillRange)
13077 {
13079 {
13080 _continue = true;
13081 break;
13082 }
13083 }
13084
13085 if (_continue)
13086 continue;
13087 }
13088 break;
13089#endif
13090
13091 case 30300:
13092 {
13093 if (CastingSpell == NULL)
13094 continue;
13095
13096
13098 continue;
13101 continue;
13102 }
13103 break;
13104
13105 case 30294:
13106 {
13107 if (CastingSpell == NULL)
13108 continue;
13109
13111
13112 switch (CastingSpell->getId())
13113 {
13114
13115 case 686:
13116 case 695:
13117 case 705:
13118 case 1088:
13119 case 1106:
13120 case 7617:
13121 case 7619:
13122 case 7641:
13123 case 9613:
13124 case 11659:
13125 case 11660:
13126 case 11661:
13127 case 12471:
13128 case 12739:
13129 case 13440:
13130 case 13480:
13131 case 14106:
13132 case 14122:
13133 case 15232:
13134 case 15472:
13135 case 15537:
13136 case 16408:
13137 case 16409:
13138 case 16410:
13139 case 16783:
13140 case 16784:
13141 case 17393:
13142 case 17434:
13143 case 17435:
13144 case 17483:
13145 case 17509:
13146 case 18111:
13147 case 18138:
13148 case 18164:
13149 case 18205:
13150 case 18211:
13151 case 18214:
13152 case 18217:
13153 case 19728:
13154 case 19729:
13155 case 20298:
13156 case 20791:
13157 case 20807:
13158 case 20816:
13159 case 20825:
13160 case 21077:
13161 case 21141:
13162 case 22336:
13163 case 22677:
13164 case 24668:
13165 case 25307:
13166 case 26006:
13167 case 27209:
13168 case 29317:
13169 case 29487:
13170 case 29626:
13171 case 29640:
13172 case 29927:
13173 case 30055:
13174 case 30505:
13175 case 30686:
13176 case 31618:
13177 case 31627:
13178 case 32666:
13179 case 32860:
13180 case 33335:
13181 case 34344:
13182 case 36714:
13183 case 36868:
13184 case 36972:
13185 case 36986:
13186 case 36987:
13187 case 38378:
13188 case 38386:
13189 case 38628:
13190 case 38825:
13191 case 38892:
13192 case 39025:
13193 case 39026:
13194 case 39297:
13195 case 39309:
13196 case 40185:
13197 case 41069:
13198 case 41280:
13199 case 41957:
13200 case 43330:
13201 case 43649:
13202 case 43667:
13203 case 45055:
13204 case 45679:
13205 case 45680:
13206 case 47076:
13207 case 47248:
13208 case 47808:
13209 case 47809:
13210 case 49084:
13211 case 50455:
13212 case 51363:
13213 case 51432:
13214 case 51608:
13215 case 52257:
13216 case 52534:
13217 case 53086:
13218 case 53333:
13219 case 54113:
13220 case 55984:
13221 case 56405:
13222 case 57374:
13223 case 57464:
13224 case 57644:
13225 case 57725:
13226 case 58827:
13227 case 59016:
13228 case 59246:
13229 case 59254:
13230 case 59351:
13231 case 59357:
13232 case 59389:
13233 case 59575:
13234 case 60015:
13235 case 61558:
13236 case 61562:
13237 case 65821:
13238 case 68151:
13239 case 68152:
13240 case 68153:
13241 case 69028:
13242 case 69068:
13243 case 69211:
13244 case 69212:
13245 case 69387:
13246 case 69577:
13247 case 69972:
13248 case 70043:
13249 case 70080:
13250 case 70182:
13251 case 70208:
13252 case 70270:
13253 case 70386:
13254 case 70387:
13255 case 71143:
13256 case 71254:
13257 case 71296:
13258 case 71297:
13259 case 71936:
13260 case 72008:
13261 case 72503:
13262 case 72504:
13263 case 72901:
13264 case 72960:
13265 case 72961:
13266 case 75330:
13267 case 75331:
13268 case 75384:
13269
13270 case 6353:
13271 case 17924:
13272 case 27211:
13273 case 30545:
13274 case 47824:
13275 case 47825:
13276
13277 case 19397:
13278 case 23308:
13279 case 23309:
13280 case 29722:
13281 case 32231:
13282 case 32707:
13283 case 36832:
13284 case 38401:
13285 case 38918:
13286 case 39083:
13287 case 40239:
13288 case 41960:
13289 case 43971:
13290 case 44519:
13291 case 46043:
13292 case 47837:
13293 case 47838:
13294 case 53493:
13295 case 69973:
13296 case 71135:
13297
13298 case 5676:
13299 case 17919:
13300 case 17920:
13301 case 17921:
13302 case 17922:
13303 case 17923:
13304 case 27210:
13305 case 29492:
13306 case 30358:
13307 case 30459:
13308 case 47814:
13309 case 47815:
13310 case 65819:
13311 case 68148:
13312 case 68149:
13313 case 68150:
13314
13315 case 17962:
13316
13317 case 50796:
13318 case 51287:
13319 case 59170:
13320 case 59171:
13321 case 59172:
13322 case 69576:
13323 case 71108:
13324 {
13325 amount = CastingSpell->calculateEffectValue(0);
13326 } break;
13327
13328
13329 case 17877:
13330 case 18867:
13331 case 18868:
13332 case 18869:
13333 case 18870:
13334 case 18871:
13335 case 27263:
13336 case 29341:
13337 case 30546:
13338 case 47826:
13339 case 47827:
13340 {
13341 amount = CastingSpell->calculateEffectValue(1);
13342 } break;
13343 default:
13344 amount = 0;
13345
13346 }
13347
13348 if (!amount)
13349 continue;
13350
13351 const auto spellInfo =
sSpellMgr.getSpellInfo(spellId);
13354 if (ospinfo)
13355 doSpellHealing(
this, spellId, amount * (ospinfo->calculateEffectValue(0)) / 100.0f,
true);
13356 delete spell;
13357 spell = NULL;
13358 continue;
13359 }
13360 break;
13361
13362 case 18093:
13363 {
13364 if (CastingSpell == NULL)
13365 continue;
13366
13367 switch (CastingSpell->getId())
13368 {
13369
13370 case 4629:
13371 case 5740:
13372 case 6219:
13373 case 11677:
13374 case 11678:
13375 case 11990:
13376 case 16005:
13377 case 19474:
13378 case 19717:
13379 case 20754:
13380 case 24669:
13381 case 27212:
13382 case 28794:
13383 case 31340:
13384 case 31598:
13385 case 33508:
13386 case 33617:
13387 case 33627:
13388 case 33972:
13389 case 34169:
13390 case 34185:
13391 case 34360:
13392 case 34435:
13393 case 36808:
13394 case 37279:
13395 case 37465:
13396 case 38635:
13397 case 38741:
13398 case 39024:
13399 case 39273:
13400 case 39363:
13401 case 39376:
13402 case 42023:
13403 case 42218:
13404 case 42223:
13405 case 42224:
13406 case 42225:
13407 case 42226:
13408 case 42227:
13409 case 43440:
13410 case 47817:
13411 case 47818:
13412 case 47819:
13413 case 47820:
13414 case 49518:
13415 case 54099:
13416 case 54210:
13417 case 57757:
13418 case 58936:
13419 case 59971:
13420 case 69670:
13421
13422 case 5857:
13423 case 11681:
13424 case 11682:
13425 case 27214:
13426 case 30860:
13427 case 47822:
13428 case 65817:
13429 case 68142:
13430 case 68143:
13431 case 68144:
13432 case 69585:
13433 case 70284:
13434
13435 case 6353:
13436 case 17924:
13437 case 27211:
13438 case 30545:
13439 case 47824:
13440 case 47825:
13441 break;
13442 default:
13443 continue;
13444 }
13445 }
13446 break;
13447 case 54274:
13448 case 54276:
13449 case 54277:
13450 {
13451 if (CastingSpell == NULL)
13452 continue;
13453
13454 if (CastingSpell->getId() != 17962)
13455 continue;
13456 }
13457 break;
13458
13459 case 44401:
13460 {
13461 if (CastingSpell == NULL)
13462 continue;
13463
13464 switch (CastingSpell->getId())
13465 {
13466
13467 case 10833:
13468 case 16067:
13469 case 18091:
13470 case 20883:
13471 case 22893:
13472 case 22920:
13473 case 22940:
13474 case 24857:
13475 case 30451:
13476 case 30661:
13477 case 31457:
13478 case 32935:
13479 case 34793:
13480 case 35314:
13481 case 35927:
13482 case 36032:
13483 case 37126:
13484 case 38342:
13485 case 38344:
13486 case 38538:
13487 case 38881:
13488 case 40837:
13489 case 40881:
13490 case 42894:
13491 case 42896:
13492 case 42897:
13493 case 49198:
13494 case 50545:
13495 case 51797:
13496 case 51830:
13497 case 56969:
13498 case 58462:
13499 case 59257:
13500 case 59909:
13501 case 65791:
13502 case 67997:
13503 case 67998:
13504 case 67999:
13505
13506 case 44425:
13507 case 44780:
13508 case 44781:
13509 case 50273:
13510 case 50804:
13511 case 56397:
13512 case 58456:
13513 case 59248:
13514 case 59381:
13515 case 63934:
13516 case 64599:
13517 case 64607:
13518 case 65799:
13519 case 67994:
13520 case 67995:
13521 case 67996:
13522
13523 case 133:
13524 case 143:
13525 case 145:
13526 case 3140:
13527 case 8400:
13528 case 8401:
13529 case 8402:
13530 case 9053:
13531 case 9487:
13532 case 9488:
13533 case 10148:
13534 case 10149:
13535 case 10150:
13536 case 10151:
13537 case 10578:
13538 case 11839:
13539 case 11921:
13540 case 11985:
13541 case 12466:
13542 case 13140:
13543 case 13375:
13544 case 13438:
13545 case 14034:
13546 case 15228:
13547 case 15242:
13548 case 15536:
13549 case 15662:
13550 case 15665:
13551 case 16101:
13552 case 16412:
13553 case 16413:
13554 case 16415:
13555 case 16788:
13556 case 17290:
13557 case 18082:
13558 case 18105:
13559 case 18108:
13560 case 18199:
13561 case 18392:
13562 case 18796:
13563 case 19391:
13564 case 19816:
13565 case 20420:
13566 case 20678:
13567 case 20692:
13568 case 20714:
13569 case 20793:
13570 case 20797:
13571 case 20808:
13572 case 20811:
13573 case 20815:
13574 case 20823:
13575 case 21072:
13576 case 21159:
13577 case 21162:
13578 case 21402:
13579 case 21549:
13580 case 22088:
13581 case 23024:
13582 case 23411:
13583 case 24374:
13584 case 24611:
13585 case 25306:
13586 case 27070:
13587 case 29456:
13588 case 29925:
13589 case 29953:
13590 case 30218:
13591 case 30534:
13592 case 30691:
13593 case 30943:
13594 case 30967:
13595 case 31262:
13596 case 31620:
13597 case 32363:
13598 case 32369:
13599 case 32414:
13600 case 32491:
13601 case 33417:
13602 case 33793:
13603 case 33794:
13604 case 34083:
13605 case 34348:
13606 case 34653:
13607 case 36711:
13608 case 36805:
13609 case 36920:
13610 case 36971:
13611 case 37111:
13612 case 37329:
13613 case 37463:
13614 case 38641:
13615 case 38692:
13616 case 38824:
13617 case 39267:
13618 case 40554:
13619 case 40598:
13620 case 40877:
13621 case 41383:
13622 case 41484:
13623 case 42802:
13624 case 42832:
13625 case 42833:
13626 case 42834:
13627 case 42853:
13628 case 44189:
13629 case 44202:
13630 case 44237:
13631 case 45580:
13632 case 45595:
13633 case 45748:
13634 case 46164:
13635 case 46988:
13636 case 47074:
13637 case 49512:
13638 case 52282:
13639 case 54094:
13640 case 54095:
13641 case 54096:
13642 case 57628:
13643 case 59994:
13644 case 61567:
13645 case 61909:
13646 case 62796:
13647 case 63789:
13648 case 63815:
13649 case 66042:
13650 case 68310:
13651 case 68926:
13652 case 69570:
13653 case 69583:
13654 case 69668:
13655 case 70282:
13656 case 70409:
13657 case 70754:
13658 case 71153:
13659 case 71500:
13660 case 71501:
13661 case 71504:
13662 case 71748:
13663 case 71928:
13664 case 72023:
13665 case 72024:
13666 case 72163:
13667 case 72164:
13668
13669 case 116:
13670 case 205:
13671 case 837:
13672 case 7322:
13673 case 8406:
13674 case 8407:
13675 case 8408:
13676 case 9672:
13677 case 10179:
13678 case 10180:
13679 case 10181:
13680 case 11538:
13681 case 12675:
13682 case 12737:
13683 case 13322:
13684 case 13439:
13685 case 15043:
13686 case 15497:
13687 case 15530:
13688 case 16249:
13689 case 16799:
13690 case 17503:
13691 case 20297:
13692 case 20792:
13693 case 20806:
13694 case 20819:
13695 case 20822:
13696 case 21369:
13697 case 23102:
13698 case 23412:
13699 case 24942:
13700 case 25304:
13701 case 27071:
13702 case 27072:
13703 case 28478:
13704 case 28479:
13705 case 29457:
13706 case 29926:
13707 case 29954:
13708 case 30942:
13709 case 31296:
13710 case 31622:
13711 case 32364:
13712 case 32370:
13713 case 32984:
13714 case 34347:
13715 case 35316:
13716 case 36279:
13717 case 36710:
13718 case 36990:
13719 case 37930:
13720 case 38238:
13721 case 38534:
13722 case 38645:
13723 case 38697:
13724 case 38826:
13725 case 39064:
13726 case 40429:
13727 case 40430:
13728 case 41384:
13729 case 41486:
13730 case 42719:
13731 case 42803:
13732 case 42841:
13733 case 42842:
13734 case 43083:
13735 case 43428:
13736 case 44606:
13737 case 44843:
13738 case 46035:
13739 case 46987:
13740 case 49037:
13741 case 50378:
13742 case 50721:
13743 case 54791:
13744 case 55802:
13745 case 55807:
13746 case 56775:
13747 case 56837:
13748 case 57665:
13749 case 57825:
13750 case 58457:
13751 case 58535:
13752 case 59017:
13753 case 59251:
13754 case 59280:
13755 case 59638:
13756 case 59855:
13757 case 61087:
13758 case 61461:
13759 case 61590:
13760 case 61730:
13761 case 61747:
13762 case 62583:
13763 case 62601:
13764 case 63913:
13765 case 65807:
13766 case 68003:
13767 case 68004:
13768 case 68005:
13769 case 69274:
13770 case 69573:
13771 case 70277:
13772 case 70327:
13773 case 71318:
13774 case 71420:
13775 case 72007:
13776 case 72166:
13777 case 72167:
13778 case 72501:
13779 case 72502:
13780
13781 case 44614:
13782 case 47610:
13783 case 51779:
13784 case 69869:
13785 case 69984:
13786 case 70616:
13787 case 71130:
13788 break;
13789 default:
13790 continue;
13791 }
13792 }
13793 break;
13794
13795 case 22959:
13796 {
13797 if (CastingSpell == NULL)
13798 continue;
13799
13800
13801 switch (CastingSpell->getId())
13802 {
13803
13804 case 1811:
13805 case 2948:
13806 case 8444:
13807 case 8445:
13808 case 8446:
13809 case 8447:
13810 case 8448:
13811 case 8449:
13812 case 10205:
13813 case 10206:
13814 case 10207:
13815 case 10208:
13816 case 10209:
13817 case 10210:
13818 case 13878:
13819 case 15241:
13820 case 17195:
13821 case 27073:
13822 case 27074:
13823 case 27375:
13824 case 27376:
13825 case 35377:
13826 case 36807:
13827 case 38391:
13828 case 38636:
13829 case 42858:
13830 case 42859:
13831 case 47723:
13832 case 50183:
13833 case 56938:
13834 case 62546:
13835 case 62548:
13836 case 62549:
13837 case 62551:
13838 case 62553:
13839 case 63473:
13840 case 63474:
13841 case 63475:
13842 case 63476:
13843 case 75412:
13844 case 75419:
13845 break;
13846 default:
13847 continue;
13848 }
13849 }
13850 break;
13851
13852 case 28682:
13853 {
13854 if (CastingSpell == NULL)
13855 continue;
13856
13858 continue;
13860 {
13862 procAura->
setCharges(procAura->getCharges() + 1);
13863 if (procAura->getCharges() >= 3)
13864 {
13866 {
13867
13868 11129,
13869 28682,
13870 29977,
13871 74630,
13872 75882,
13873 75883,
13874 75884,
13875 0
13876 };
13877
13879 continue;
13880 }
13881 }
13882 }
13883 break;
13884
13885 case 12579:
13886
13888 continue;
13889 break;
13890
13891 case 21992:
13892 if (victim == this)
13893 continue;
13894 break;
13895
13896 case 5246:
13897 if (victim == this)
13898 continue;
13899 break;
13900
13901
13902 case 59887:
13903 case 59888:
13904 case 59889:
13905 case 59890:
13906 case 59891:
13907 {
13908 if (CastingSpell == NULL)
13909 continue;
13910
13911 switch (CastingSpell->getId())
13912 {
13913
13914 case 17:
13915 case 592:
13916 case 600:
13917 case 3747:
13918 case 6065:
13919 case 6066:
13920 case 10898:
13921 case 10899:
13922 case 10900:
13923 case 10901:
13924 case 11647:
13925 case 11835:
13926 case 11974:
13927 case 17139:
13928 case 20697:
13929 case 22187:
13930 case 25217:
13931 case 25218:
13932 case 27607:
13933 case 29408:
13934 case 32595:
13935 case 35944:
13936 case 36052:
13937 case 41373:
13938 case 44175:
13939 case 44291:
13940 case 46193:
13941 case 48065:
13942 case 48066:
13943 case 66099:
13944 case 68032:
13945 case 68033:
13946 case 68034:
13947 case 71548:
13948 case 71780:
13949 case 71781:
13950 break;
13951 default:
13952 continue;
13953 }
13954 }
13955 break;
13956
13957
13958 case 15363:
13959 case 14893:
13960 case 15357:
13961 case 15359:
13962 {
13964 continue;
13965 }
13966 break;
13967
13968 case 27813:
13969 case 27817:
13970 case 27818:
13971 {
13973 continue;
13975 const auto spellInfo =
sSpellMgr.getSpellInfo(spellId);
13976 if (!parentproc || !spellInfo)
13977 continue;
13983 continue;
13984 }
13985 break;
13986
13987
13988
13989 case 29203:
13990 {
13991 if (CastingSpell == NULL)
13992 continue;
13993
13994
13995 switch (CastingSpell->getId())
13996 {
13997
13998 case 331:
13999 case 332:
14000 case 547:
14001 case 913:
14002 case 939:
14003 case 959:
14004 case 8005:
14005 case 10395:
14006 case 10396:
14007 case 11986:
14008 case 12491:
14009 case 12492:
14010 case 15982:
14011 case 25357:
14012 case 25391:
14013 case 25396:
14014 case 26097:
14015 case 38330:
14016 case 43548:
14017 case 48700:
14018 case 49272:
14019 case 49273:
14020 case 51586:
14021 case 52868:
14022 case 55597:
14023 case 57785:
14024 case 58980:
14025 case 59083:
14026 case 60012:
14027 case 61569:
14028 case 67528:
14029 case 68318:
14030 case 69958:
14031 case 71133:
14032 case 75382:
14033 break;
14034 default:
14035 continue;
14036 }
14037 }
14038 break;
14039
14040 case 29177:
14041 case 29178:
14042 case 30165:
14043 {
14044 if (CastingSpell == NULL)
14045 continue;
14046
14048 continue;
14049 }
14050 break;
14051
14052 case 16177:
14053 case 16236:
14054 case 16237:
14055 {
14056 if (CastingSpell == NULL)
14057 continue;
14058
14059
14060 switch (CastingSpell->getId())
14061 {
14062
14063 case 379:
14064 case 974:
14065 case 32593:
14066 case 32594:
14067 case 32734:
14068 case 38590:
14069 case 49283:
14070 case 49284:
14071 case 54479:
14072 case 54480:
14073 case 55599:
14074 case 55600:
14075 case 56451:
14076 case 57802:
14077 case 57803:
14078 case 58981:
14079 case 58982:
14080 case 59471:
14081 case 59472:
14082 case 60013:
14083 case 60014:
14084 case 66063:
14085 case 66064:
14086 case 67530:
14087 case 67537:
14088 case 68320:
14089 case 68592:
14090 case 68593:
14091 case 68594:
14092 case 69568:
14093 case 69569:
14094 case 69925:
14095 case 69926:
14096 continue;
14097 default:
14098 break;
14099 }
14100 }
14101
14102 case 51940:
14103 case 51989:
14104 case 52004:
14105 case 52005:
14106 case 52007:
14107 case 52008:
14108 {
14109 if (CastingSpell == NULL)
14110 continue;
14111
14113 continue;
14114 }
14115 break;
14116
14117 case 51562:
14118 case 51563:
14119 case 51564:
14120 case 51565:
14121 case 51566:
14122 {
14123 if (CastingSpell == NULL)
14124 continue;
14125
14126 switch (CastingSpell->getId())
14127 {
14128
14129 case 1064:
14130 case 10622:
14131 case 10623:
14132 case 14900:
14133 case 15799:
14134 case 16367:
14135 case 25422:
14136 case 25423:
14137 case 33642:
14138 case 41114:
14139 case 42027:
14140 case 42477:
14141 case 43527:
14142 case 48894:
14143 case 54481:
14144 case 55458:
14145 case 55459:
14146 case 59473:
14147 case 69923:
14148 case 70425:
14149 case 71120:
14150 case 75370:
14151
14152 case 22419:
14153 case 61295:
14154 case 61299:
14155 case 61300:
14156 case 61301:
14157 case 66053:
14158 case 68118:
14159 case 68119:
14160 case 68120:
14161 case 75367:
14162 break;
14163 default:
14164 continue;
14165 }
14166 }
14167 break;
14168
14169 case 42371:
14170 case 34132:
14171 case 46099:
14172 case 43729:
14173 {
14174 if (CastingSpell == NULL)
14175 continue;
14176
14177 switch (CastingSpell->getId())
14178 {
14179
14180 case 8004:
14181 case 8008:
14182 case 8010:
14183 case 10466:
14184 case 10467:
14185 case 10468:
14186 case 25420:
14187 case 27624:
14188 case 28849:
14189 case 28850:
14190 case 44256:
14191 case 46181:
14192 case 49275:
14193 case 49276:
14194 case 49309:
14195 case 66055:
14196 case 68115:
14197 case 68116:
14198 case 68117:
14199 case 75366:
14200 break;
14201 default:
14202 continue;
14203 }
14204 }
14205 break;
14206
14207 case 43749:
14208 {
14209 if (CastingSpell == NULL)
14210 continue;
14211
14212 switch (CastingSpell->getId())
14213 {
14214
14215 case 8042:
14216 case 8044:
14217 case 8045:
14218 case 8046:
14219 case 10412:
14220 case 10413:
14221 case 10414:
14222 case 13281:
14223 case 13728:
14224 case 15501:
14225 case 22885:
14226 case 23114:
14227 case 24685:
14228 case 25025:
14229 case 25454:
14230 case 26194:
14231 case 43305:
14232 case 47071:
14233 case 49230:
14234 case 49231:
14235 case 54511:
14236 case 56506:
14237 case 57783:
14238 case 60011:
14239 case 61668:
14240 case 65973:
14241 case 68100:
14242 case 68101:
14243 case 68102:
14244
14245 case 8050:
14246 case 8052:
14247 case 8053:
14248 case 10447:
14249 case 10448:
14250 case 13729:
14251 case 15039:
14252 case 15096:
14253 case 15616:
14254 case 16804:
14255 case 22423:
14256 case 23038:
14257 case 25457:
14258 case 29228:
14259 case 32967:
14260 case 34354:
14261 case 39529:
14262 case 39590:
14263 case 41115:
14264 case 43303:
14265 case 49232:
14266 case 49233:
14267 case 51588:
14268 case 55613:
14269 case 58940:
14270 case 58971:
14271 case 59684:
14272
14273 case 8056:
14274 case 8058:
14275 case 10472:
14276 case 10473:
14277 case 12548:
14278 case 15089:
14279 case 15499:
14280 case 19133:
14281 case 21030:
14282 case 21401:
14283 case 22582:
14284 case 23115:
14285 case 25464:
14286 case 29666:
14287 case 34353:
14288 case 37332:
14289 case 37865:
14290 case 38234:
14291 case 39062:
14292 case 41116:
14293 case 43524:
14294 case 46180:
14295 case 49235:
14296 case 49236:
14297 break;
14298 default:
14299 continue;
14300 }
14301 }
14302 break;
14303
14304 case 34135:
14305 case 42369:
14306 case 43727:
14307 case 46093:
14308 {
14309 if (CastingSpell == NULL)
14310 continue;
14311
14312 switch (CastingSpell->getId())
14313 {
14314
14315 case 19750:
14316 case 19939:
14317 case 19940:
14318 case 19941:
14319 case 19942:
14320 case 19943:
14321 case 25514:
14322 case 27137:
14323 case 33641:
14324 case 37249:
14325 case 37254:
14326 case 37257:
14327 case 48784:
14328 case 48785:
14329 case 57766:
14330 case 59997:
14331 case 66113:
14332 case 66922:
14333 case 68008:
14334 case 68009:
14335 case 68010:
14336 case 71930:
14337 break;
14338 default:
14339 continue;
14340 }
14341 }
14342 break;
14343
14344 case 43747:
14345 {
14346 if (CastingSpell == NULL)
14347 continue;
14348
14349 switch (CastingSpell->getId())
14350 {
14351
14352 case 20425:
14353 case 20467:
14354 case 29386:
14355 case 32778:
14356 case 33554:
14357 case 41368:
14358 case 41470:
14359 case 66005:
14360 case 68017:
14361 case 68018:
14362 case 68019:
14363 case 71551:
14364
14365 case 10321:
14366 case 23590:
14367 case 23591:
14368 case 35170:
14369 case 41467:
14370 case 43838:
14371 case 54158:
14372 break;
14373 default:
14374 continue;
14375 }
14376 }
14377 break;
14378 case 16246:
14379 {
14380 switch (CastingSpell->getId())
14381 {
14382
14383 case 39805:
14384
14385 case 403:
14386 case 529:
14387 case 548:
14388 case 915:
14389 case 943:
14390 case 6041:
14391 case 8246:
14392 case 9532:
14393 case 10391:
14394 case 10392:
14395 case 12167:
14396 case 13482:
14397 case 13527:
14398 case 14109:
14399 case 14119:
14400 case 15207:
14401 case 15208:
14402 case 15234:
14403 case 15801:
14404 case 16782:
14405 case 18081:
14406 case 18089:
14407 case 19874:
14408 case 20295:
14409 case 20802:
14410 case 20805:
14411 case 20824:
14412 case 22414:
14413 case 23592:
14414 case 25448:
14415 case 25449:
14416 case 26098:
14417 case 31764:
14418 case 34345:
14419 case 35010:
14420 case 36152:
14421 case 37273:
14422 case 37661:
14423 case 37664:
14424 case 38465:
14425 case 39065:
14426 case 41184:
14427 case 42024:
14428 case 43526:
14429 case 43903:
14430 case 45075:
14431 case 45284:
14432 case 45286:
14433 case 45287:
14434 case 45288:
14435 case 45289:
14436 case 45290:
14437 case 45291:
14438 case 45292:
14439 case 45293:
14440 case 45294:
14441 case 45295:
14442 case 45296:
14443 case 48698:
14444 case 48895:
14445 case 49237:
14446 case 49238:
14447 case 49239:
14448 case 49240:
14449 case 49418:
14450 case 49454:
14451 case 51587:
14452 case 51618:
14453 case 53044:
14454 case 53314:
14455 case 54843:
14456 case 55044:
14457 case 56326:
14458 case 56891:
14459 case 57780:
14460 case 57781:
14461 case 59006:
14462 case 59024:
14463 case 59081:
14464 case 59169:
14465 case 59199:
14466 case 59683:
14467 case 59863:
14468 case 60009:
14469 case 60032:
14470 case 61374:
14471 case 61893:
14472 case 63809:
14473 case 64098:
14474 case 64696:
14475 case 65987:
14476 case 68112:
14477 case 68113:
14478 case 68114:
14479 case 69567:
14480 case 69970:
14481 case 71136:
14482 case 71934:
14483
14484 case 421:
14485 case 930:
14486 case 2860:
14487 case 10605:
14488 case 12058:
14489 case 15117:
14490 case 15305:
14491 case 15659:
14492 case 16006:
14493 case 16033:
14494 case 16921:
14495 case 20831:
14496 case 21179:
14497 case 22355:
14498 case 23106:
14499 case 23206:
14500 case 24680:
14501 case 25021:
14502 case 25439:
14503 case 25442:
14504 case 27567:
14505 case 28167:
14506 case 28293:
14507 case 28900:
14508 case 31330:
14509 case 31717:
14510 case 32337:
14511 case 33643:
14512 case 37448:
14513 case 39066:
14514 case 39945:
14515 case 40536:
14516 case 41183:
14517 case 42441:
14518 case 42804:
14519 case 43435:
14520 case 44318:
14521 case 45297:
14522 case 45298:
14523 case 45299:
14524 case 45300:
14525 case 45301:
14526 case 45302:
14527 case 45868:
14528 case 46380:
14529 case 48140:
14530 case 48699:
14531 case 49268:
14532 case 49269:
14533 case 49270:
14534 case 49271:
14535 case 50830:
14536 case 52383:
14537 case 54334:
14538 case 54531:
14539 case 59082:
14540 case 59220:
14541 case 59223:
14542 case 59273:
14543 case 59517:
14544 case 59716:
14545 case 59844:
14546 case 61528:
14547 case 61879:
14548 case 62131:
14549 case 63479:
14550 case 64213:
14551 case 64215:
14552 case 64390:
14553 case 64758:
14554 case 64759:
14555 case 67529:
14556 case 68319:
14557 case 69696:
14558 case 75362:
14559
14560 case 8042:
14561 case 8044:
14562 case 8045:
14563 case 8046:
14564 case 10412:
14565 case 10413:
14566 case 10414:
14567 case 13281:
14568 case 13728:
14569 case 15501:
14570 case 22885:
14571 case 23114:
14572 case 24685:
14573 case 25025:
14574 case 25454:
14575 case 26194:
14576 case 43305:
14577 case 47071:
14578 case 49230:
14579 case 49231:
14580 case 54511:
14581 case 56506:
14582 case 57783:
14583 case 60011:
14584 case 61668:
14585 case 65973:
14586 case 68100:
14587 case 68101:
14588 case 68102:
14589
14590 case 8050:
14591 case 8052:
14592 case 8053:
14593 case 10447:
14594 case 10448:
14595 case 13729:
14596 case 15039:
14597 case 15096:
14598 case 15616:
14599 case 16804:
14600 case 22423:
14601 case 23038:
14602 case 25457:
14603 case 29228:
14604 case 32967:
14605 case 34354:
14606 case 39529:
14607 case 39590:
14608 case 41115:
14609 case 43303:
14610 case 49232:
14611 case 49233:
14612 case 51588:
14613 case 55613:
14614 case 58940:
14615 case 58971:
14616 case 59684:
14617
14618 case 8056:
14619 case 8058:
14620 case 10472:
14621 case 10473:
14622 case 12548:
14623 case 15089:
14624 case 15499:
14625 case 19133:
14626 case 21030:
14627 case 21401:
14628 case 22582:
14629 case 23115:
14630 case 25464:
14631 case 29666:
14632 case 34353:
14633 case 37332:
14634 case 37865:
14635 case 38234:
14636 case 39062:
14637 case 41116:
14638 case 43524:
14639 case 46180:
14640 case 49235:
14641 case 49236:
14642 break;
14643 default:
14644 continue;
14645 }
14646 }
14647 break;
14648
14649 case 8232:
14650 case 8235:
14651 case 10486:
14652 case 16362:
14653 case 25505:
14654 {
14656 continue;
14657
14658
14659 const auto spellInfo =
sSpellMgr.getSpellInfo(origId);
14660 uint32_t AP_owerride = spellInfo->calculateEffectValue(0);
14661 uint32_t dmg2 =
static_cast<Player*
>(
this)->getMainMeleeDamage(AP_owerride);
14663 strike(victim,
MELEE, sp_for_the_logs, dmg2, 0, 0,
true,
false);
14664 strike(victim,
MELEE, sp_for_the_logs, dmg2, 0, 0,
true,
false);
14665 spellId = 33010;
14666 }
14667 break;
14668
14669 case 14157:
14670 {
14671 if (CastingSpell == NULL)
14672 continue;
14673
14675 continue;
14676 }
14677 break;
14678
14679 case 70802:
14680 {
14681
14683 continue;
14684 }
14685 break;
14686
14687 case 23690:
14688 case 23691:
14689 {
14690 if (!CastingSpell || CastingSpell->getId() != 18499)
14691 continue;
14692 }
14693 break;
14694
14695 case 12536:
14696 {
14697
14698 if (CastingSpell == NULL)
14699 continue;
14701 continue;
14702 }
14703 break;
14704
14705 case 12484:
14706 case 12485:
14707 case 12486:
14708 {
14709 if (CastingSpell == NULL)
14710 continue;
14711
14712 if (victim == this)
14713 continue;
14714
14715 switch (CastingSpell->getId())
14716 {
14717
14718 case 10:
14719 case 1196:
14720 case 6141:
14721 case 6142:
14722 case 8364:
14723 case 8427:
14724 case 8428:
14725 case 10185:
14726 case 10186:
14727 case 10187:
14728 case 10188:
14729 case 10189:
14730 case 10190:
14731 case 15783:
14732 case 19099:
14733 case 20680:
14734 case 21096:
14735 case 21367:
14736 case 25019:
14737 case 26607:
14738 case 27085:
14739 case 27384:
14740 case 27618:
14741 case 29458:
14742 case 29951:
14743 case 30093:
14744 case 31266:
14745 case 31581:
14746 case 33418:
14747 case 33624:
14748 case 33634:
14749 case 34167:
14750 case 34183:
14751 case 34356:
14752 case 37263:
14753 case 37671:
14754 case 38646:
14755 case 39416:
14756 case 41382:
14757 case 41482:
14758 case 42198:
14759 case 42208:
14760 case 42209:
14761 case 42210:
14762 case 42211:
14763 case 42212:
14764 case 42213:
14765 case 42937:
14766 case 42938:
14767 case 42939:
14768 case 42940:
14769 case 44178:
14770 case 46195:
14771 case 47727:
14772 case 49034:
14773 case 50715:
14774 case 56936:
14775 case 58693:
14776 case 59278:
14777 case 59369:
14778 case 59854:
14779 case 61085:
14780 case 62576:
14781 case 62577:
14782 case 62602:
14783 case 62603:
14784 case 62706:
14785 case 64642:
14786 case 64653:
14787 case 70362:
14788 case 70421:
14789 case 71118:
14790 break;
14791 default:
14792 continue;
14793 }
14794 }
14795 break;
14796
14797 case 34471:
14798 {
14799 if (CastingSpell == NULL)
14800 continue;
14801
14802 if (CastingSpell->getId() != 19574)
14803 continue;
14804 }
14805
14806 case 34720:
14807 {
14808 if (CastingSpell == NULL)
14809 continue;
14811 }
14812 break;
14813
14814 case 33619:
14815 {
14817 continue;
14818
14819
14821 {
14822
14823 17,
14824 592,
14825 600,
14826 3747,
14827 6065,
14828 6066,
14829 10898,
14830 10899,
14831 10900,
14832 10901,
14833 11647,
14834 11835,
14835 11974,
14836 17139,
14837 20697,
14838 22187,
14839 25217,
14840 25218,
14841 27607,
14842 29408,
14843 32595,
14844 35944,
14845 36052,
14846 41373,
14847 44175,
14848 44291,
14849 46193,
14850 48065,
14851 48066,
14852 66099,
14853 68032,
14854 68033,
14855 68034,
14856 71548,
14857 71780,
14858 71781,
14859 0
14860 };
14861
14863 if (!power_word_id)
14864 power_word_id = 17;
14865
14866 if (ospinfo)
14867 {
14868 auto tdmg = damageInfo.
absorbedDamage * (ospinfo->calculateEffectValue(0)) / 100.0f;
14869
14871 }
14872 continue;
14873 }
14874 break;
14875
14876 case 35542:
14877 case 35545:
14878 case 35546:
14879 case 35547:
14880 case 35548:
14881 {
14883 continue;
14884
14887 continue;
14888 }
14889 break;
14890
14891 case 20233:
14892 case 20236:
14893 {
14894 if (CastingSpell == NULL)
14895 continue;
14896
14897 switch (CastingSpell->getId())
14898 {
14899
14900 case 633:
14901 case 2800:
14902 case 9257:
14903 case 10310:
14904 case 17233:
14905 case 20233:
14906 case 20236:
14907 case 27154:
14908 case 48788:
14909 case 53778:
14910 break;
14911 default:
14912 continue;
14913 }
14914 }
14915 break;
14916
14917 case 53672:
14918 case 54149:
14919 {
14920 if (CastingSpell == NULL)
14921 continue;
14922
14923 switch (CastingSpell->getId())
14924 {
14925
14926 case 20473:
14927 case 20929:
14928 case 20930:
14929 case 25902:
14930 case 25903:
14931 case 25911:
14932 case 25912:
14933 case 25913:
14934 case 25914:
14935 case 27174:
14936 case 27175:
14937 case 27176:
14938 case 32771:
14939 case 33072:
14940 case 33073:
14941 case 33074:
14942 case 35160:
14943 case 36340:
14944 case 38921:
14945 case 48820:
14946 case 48821:
14947 case 48822:
14948 case 48823:
14949 case 48824:
14950 case 48825:
14951 case 66114:
14952 case 68014:
14953 case 68015:
14954 case 68016:
14955 break;
14956 default:
14957 continue;
14958 }
14959 }
14960 break;
14961
14962 case 53659:
14963 {
14964 if (CastingSpell == NULL)
14965 continue;
14966
14967 switch (CastingSpell->getId())
14968 {
14969
14970 case 4987:
14971 case 28787:
14972 case 28788:
14973 case 29380:
14974 case 32400:
14975 case 39078:
14976 case 57767:
14977 case 66116:
14978 case 68621:
14979 case 68622:
14980 case 68623:
14981 break;
14982 default:
14983 continue;
14984 }
14985 }
14986 break;
14987
14988 case 53655:
14989 case 53656:
14990 case 53657:
14991 case 54152:
14992 case 54153:
14993 {
14994 if (CastingSpell == NULL)
14995 continue;
14996 if (CastingSpell->getId() != 53408 && CastingSpell->getId() != 53407 && CastingSpell->getId() != 20271)
14997 continue;
14998 }
14999 break;
15000 case 21183:
15001 case 54498:
15002 case 54499:
15003 {
15004 if (CastingSpell == NULL)
15005 continue;
15006 if (CastingSpell->getId() != 53408 && CastingSpell->getId() != 53407 && CastingSpell->getId() != 20271)
15007 continue;
15008 }
15009 break;
15010 case 54203:
15011 {
15012 if (CastingSpell == NULL)
15013 continue;
15014
15015 switch (CastingSpell->getId())
15016 {
15017
15018 case 19750:
15019 case 19939:
15020 case 19940:
15021 case 19941:
15022 case 19942:
15023 case 19943:
15024 case 25514:
15025 case 27137:
15026 case 33641:
15027 case 37249:
15028 case 37254:
15029 case 37257:
15030 case 48784:
15031 case 48785:
15032 case 57766:
15033 case 59997:
15034 case 66113:
15035 case 66922:
15036 case 68008:
15037 case 68009:
15038 case 68010:
15039 case 71930:
15040
15041 case 635:
15042 case 639:
15043 case 647:
15044 case 1026:
15045 case 1042:
15046 case 3472:
15047 case 10328:
15048 case 10329:
15049 case 13952:
15050 case 15493:
15051 case 25263:
15052 case 25292:
15053 case 27135:
15054 case 27136:
15055 case 29383:
15056 case 29427:
15057 case 29562:
15058 case 31713:
15059 case 32769:
15060 case 37979:
15061 case 43451:
15062 case 44479:
15063 case 46029:
15064 case 48781:
15065 case 48782:
15066 case 52444:
15067 case 56539:
15068 case 58053:
15069 case 66112:
15070 case 68011:
15071 case 68012:
15072 case 68013:
15073 break;
15074 default:
15075 continue;
15076 }
15077
15078 const auto spellInfo =
sSpellMgr.getSpellInfo(54203);
15081 if (ospinfo)
15083 }
15084 break;
15085
15086
15087
15088
15089
15090 case 12798:
15091 {
15092 switch (CastingSpell->getId())
15093 {
15094
15095 case 6572:
15096 case 6574:
15097 case 7379:
15098 case 11600:
15099 case 11601:
15100 case 12170:
15101 case 19130:
15102 case 25269:
15103 case 25288:
15104 case 28844:
15105 case 30357:
15106 case 37517:
15107 case 40392:
15108 case 57823:
15109 break;
15110 default:
15111 continue;
15112 }
15113 }
15114 break;
15115
15116 case 64849:
15117 case 64850:
15118 {
15119 if (CastingSpell == nullptr)
15120 continue;
15121
15123 continue;
15124
15125 auto idx = CastingSpell->firstBeneficialEffect();
15126 if (idx != 1)
15127 {
15128 if (ospinfo)
15129 spell_proc->
setOverrideEffectDamage(0, ((CastingSpell->getEffectBasePoints(
static_cast<uint8_t>(idx)) + 1) * (ospinfo->calculateEffectValue(0)) / 100));
15130 }
15131 }
15132 break;
15133
15134 case 31834:
15135 {
15136 if (CastingSpell == nullptr)
15137 continue;
15138
15139 switch (CastingSpell->getId())
15140 {
15141
15142 case 635:
15143 case 639:
15144 case 647:
15145 case 1026:
15146 case 1042:
15147 case 3472:
15148 case 10328:
15149 case 10329:
15150 case 13952:
15151 case 15493:
15152 case 25263:
15153 case 25292:
15154 case 27135:
15155 case 27136:
15156 case 29383:
15157 case 29427:
15158 case 29562:
15159 case 31713:
15160 case 32769:
15161 case 37979:
15162 case 43451:
15163 case 44479:
15164 case 46029:
15165 case 48781:
15166 case 48782:
15167 case 52444:
15168 case 56539:
15169 case 58053:
15170 case 66112:
15171 case 68011:
15172 case 68012:
15173 case 68013:
15174 break;
15175 default:
15176 continue;
15177 }
15178 }
15179 break;
15180
15181 case 31828:
15182 {
15183
15185 continue;
15186 }
15187 break;
15188
15189 case 54180:
15190 {
15191 if (CastingSpell == NULL)
15192 continue;
15193 if (CastingSpell->getId() != 53408 && CastingSpell->getId() != 53407 && CastingSpell->getId() != 20271)
15194 continue;
15196 continue;
15197 }
15198 break;
15199 case 54172:
15200 {
15201 if (CastingSpell == NULL)
15202 continue;
15203
15204 switch (CastingSpell->getId())
15205 {
15206
15207 case 53385:
15208 case 54171:
15209 case 54172:
15210 case 58127:
15211 case 66006:
15212 break;
15213 default:
15214 continue;
15215 }
15216 }
15217 break;
15218
15219 case 43751:
15220 {
15221 if (CastingSpell == NULL)
15222 continue;
15223
15224 switch (CastingSpell->getId())
15225 {
15226
15227 case 403:
15228 case 529:
15229 case 548:
15230 case 915:
15231 case 943:
15232 case 6041:
15233 case 8246:
15234 case 9532:
15235 case 10391:
15236 case 10392:
15237 case 12167:
15238 case 13482:
15239 case 13527:
15240 case 14109:
15241 case 14119:
15242 case 15207:
15243 case 15208:
15244 case 15234:
15245 case 15801:
15246 case 16782:
15247 case 18081:
15248 case 18089:
15249 case 19874:
15250 case 20295:
15251 case 20802:
15252 case 20805:
15253 case 20824:
15254 case 22414:
15255 case 23592:
15256 case 25448:
15257 case 25449:
15258 case 26098:
15259 case 31764:
15260 case 34345:
15261 case 35010:
15262 case 36152:
15263 case 37273:
15264 case 37661:
15265 case 37664:
15266 case 38465:
15267 case 39065:
15268 case 41184:
15269 case 42024:
15270 case 43526:
15271 case 43903:
15272 case 45075:
15273 case 45284:
15274 case 45286:
15275 case 45287:
15276 case 45288:
15277 case 45289:
15278 case 45290:
15279 case 45291:
15280 case 45292:
15281 case 45293:
15282 case 45294:
15283 case 45295:
15284 case 45296:
15285 case 48698:
15286 case 48895:
15287 case 49237:
15288 case 49238:
15289 case 49239:
15290 case 49240:
15291 case 49418:
15292 case 49454:
15293 case 51587:
15294 case 51618:
15295 case 53044:
15296 case 53314:
15297 case 54843:
15298 case 55044:
15299 case 56326:
15300 case 56891:
15301 case 57780:
15302 case 57781:
15303 case 59006:
15304 case 59024:
15305 case 59081:
15306 case 59169:
15307 case 59199:
15308 case 59683:
15309 case 59863:
15310 case 60009:
15311 case 60032:
15312 case 61374:
15313 case 61893:
15314 case 63809:
15315 case 64098:
15316 case 64696:
15317 case 65987:
15318 case 68112:
15319 case 68113:
15320 case 68114:
15321 case 69567:
15322 case 69970:
15323 case 71136:
15324 case 71934:
15325 break;
15326 default:
15327 continue;
15328 }
15329
15330 }
15331 break;
15332
15333
15334 case 33370:
15335 {
15336 if (CastingSpell == NULL)
15337 continue;
15339 continue;
15340 }
15341 break;
15342 case 60487:
15343 {
15344 if (CastingSpell == NULL)
15345 continue;
15347 continue;
15348 }
15349 break;
15350 case 33953:
15351 {
15352 if (!CastingSpell)
15353 continue;
15355 continue;
15356 }
15357 break;
15358 case 60529:
15359 {
15360 if (!CastingSpell)
15361 continue;
15363 continue;
15364 }
15365 break;
15366 case 53390:
15367 {
15368 if (!CastingSpell)
15369 continue;
15370
15371 switch (CastingSpell->getId())
15372 {
15373
15374 case 1064:
15375 case 10622:
15376 case 10623:
15377 case 14900:
15378 case 15799:
15379 case 16367:
15380 case 25422:
15381 case 25423:
15382 case 33642:
15383 case 41114:
15384 case 42027:
15385 case 42477:
15386 case 43527:
15387 case 48894:
15388 case 54481:
15389 case 55458:
15390 case 55459:
15391 case 59473:
15392 case 69923:
15393 case 70425:
15394 case 71120:
15395 case 75370:
15396
15397 case 22419:
15398 case 61295:
15399 case 61299:
15400 case 61300:
15401 case 61301:
15402 case 66053:
15403 case 68118:
15404 case 68119:
15405 case 68120:
15406 case 75367:
15407 break;
15408 default:
15409 continue;
15410 }
15411 }
15412 break;
15413
15414 case 51945:
15415 case 51990:
15416 case 51997:
15417 case 51998:
15418 case 51999:
15419 case 52000:
15420 {
15421 if (!CastingSpell)
15422 continue;
15424 continue;
15425 }
15426 break;
15427
15428 case 39805:
15429 {
15430 if (CastingSpell == NULL)
15431 continue;
15432
15433
15434 switch (CastingSpell->getId())
15435 {
15436
15437 case 403:
15438 case 529:
15439 case 548:
15440 case 915:
15441 case 943:
15442 case 6041:
15443 case 8246:
15444 case 9532:
15445 case 10391:
15446 case 10392:
15447 case 12167:
15448 case 13482:
15449 case 13527:
15450 case 14109:
15451 case 14119:
15452 case 15207:
15453 case 15208:
15454 case 15234:
15455 case 15801:
15456 case 16782:
15457 case 18081:
15458 case 18089:
15459 case 19874:
15460 case 20295:
15461 case 20802:
15462 case 20805:
15463 case 20824:
15464 case 22414:
15465 case 23592:
15466 case 25448:
15467 case 25449:
15468 case 26098:
15469 case 31764:
15470 case 34345:
15471 case 35010:
15472 case 36152:
15473 case 37273:
15474 case 37661:
15475 case 37664:
15476 case 38465:
15477 case 39065:
15478 case 41184:
15479 case 42024:
15480 case 43526:
15481 case 43903:
15482 case 45075:
15483 case 45284:
15484 case 45286:
15485 case 45287:
15486 case 45288:
15487 case 45289:
15488 case 45290:
15489 case 45291:
15490 case 45292:
15491 case 45293:
15492 case 45294:
15493 case 45295:
15494 case 45296:
15495 case 48698:
15496 case 48895:
15497 case 49237:
15498 case 49238:
15499 case 49239:
15500 case 49240:
15501 case 49418:
15502 case 49454:
15503 case 51587:
15504 case 51618:
15505 case 53044:
15506 case 53314:
15507 case 54843:
15508 case 55044:
15509 case 56326:
15510 case 56891:
15511 case 57780:
15512 case 57781:
15513 case 59006:
15514 case 59024:
15515 case 59081:
15516 case 59169:
15517 case 59199:
15518 case 59683:
15519 case 59863:
15520 case 60009:
15521 case 60032:
15522 case 61374:
15523 case 61893:
15524 case 63809:
15525 case 64098:
15526 case 64696:
15527 case 65987:
15528 case 68112:
15529 case 68113:
15530 case 68114:
15531 case 69567:
15532 case 69970:
15533 case 71136:
15534 case 71934:
15535
15536 case 421:
15537 case 930:
15538 case 2860:
15539 case 10605:
15540 case 12058:
15541 case 15117:
15542 case 15305:
15543 case 15659:
15544 case 16006:
15545 case 16033:
15546 case 16921:
15547 case 20831:
15548 case 21179:
15549 case 22355:
15550 case 23106:
15551 case 23206:
15552 case 24680:
15553 case 25021:
15554 case 25439:
15555 case 25442:
15556 case 27567:
15557 case 28167:
15558 case 28293:
15559 case 28900:
15560 case 31330:
15561 case 31717:
15562 case 32337:
15563 case 33643:
15564 case 37448:
15565 case 39066:
15566 case 39945:
15567 case 40536:
15568 case 41183:
15569 case 42441:
15570 case 42804:
15571 case 43435:
15572 case 44318:
15573 case 45297:
15574 case 45298:
15575 case 45299:
15576 case 45300:
15577 case 45301:
15578 case 45302:
15579 case 45868:
15580 case 46380:
15581 case 48140:
15582 case 48699:
15583 case 49268:
15584 case 49269:
15585 case 49270:
15586 case 49271:
15587 case 50830:
15588 case 52383:
15589 case 54334:
15590 case 54531:
15591 case 59082:
15592 case 59220:
15593 case 59223:
15594 case 59273:
15595 case 59517:
15596 case 59716:
15597 case 59844:
15598 case 61528:
15599 case 61879:
15600 case 62131:
15601 case 63479:
15602 case 64213:
15603 case 64215:
15604 case 64390:
15605 case 64758:
15606 case 64759:
15607 case 67529:
15608 case 68319:
15609 case 69696:
15610 case 75362:
15611 {
15613 spellId = CastingSpell->getId();
15614 origId = 39805;
15615 } break;
15616 default:
15617 continue;
15618 }
15619 }
15620 break;
15621
15622 case 35084:
15623 {
15624 if (CastingSpell == NULL)
15625 continue;
15627 continue;
15628 }
15629 break;
15630
15631 case 60431:
15632 case 60432:
15633 case 60433:
15634 {
15635 if (CastingSpell == NULL)
15636 continue;
15637
15638 switch (CastingSpell->getId())
15639 {
15640
15641 case 2912:
15642 case 8949:
15643 case 8950:
15644 case 8951:
15645 case 9875:
15646 case 9876:
15647 case 21668:
15648 case 25298:
15649 case 26986:
15650 case 35243:
15651 case 38935:
15652 case 40344:
15653 case 48464:
15654 case 48465:
15655 case 65854:
15656 case 67947:
15657 case 67948:
15658 case 67949:
15659 case 75332:
15660
15661 case 5176:
15662 case 5177:
15663 case 5178:
15664 case 5179:
15665 case 5180:
15666 case 6780:
15667 case 8905:
15668 case 9739:
15669 case 9912:
15670 case 17144:
15671 case 18104:
15672 case 20698:
15673 case 21667:
15674 case 21807:
15675 case 26984:
15676 case 26985:
15677 case 31784:
15678 case 43619:
15679 case 48459:
15680 case 48461:
15681 case 52501:
15682 case 57648:
15683 case 59986:
15684 case 62793:
15685 case 63259:
15686 case 63569:
15687 case 65862:
15688 case 67951:
15689 case 67952:
15690 case 67953:
15691 case 69968:
15692 case 71148:
15693 case 75327:
15694 break;
15695 default:
15696 continue;
15697 }
15698 }
15699 break;
15700
15701 case 16922:
15702 {
15703 if (CastingSpell == NULL)
15704 continue;
15705
15706 switch (CastingSpell->getId())
15707 {
15708
15709 case 2912:
15710 case 8949:
15711 case 8950:
15712 case 8951:
15713 case 9875:
15714 case 9876:
15715 case 21668:
15716 case 25298:
15717 case 26986:
15718 case 35243:
15719 case 38935:
15720 case 40344:
15721 case 48464:
15722 case 48465:
15723 case 65854:
15724 case 67947:
15725 case 67948:
15726 case 67949:
15727 case 75332:
15728 break;
15729 default:
15730 continue;
15731 }
15732 }
15733 break;
15734 case 37565:
15735 {
15736 if (!CastingSpell)
15737 continue;
15738
15739 switch (CastingSpell->getId())
15740 {
15741
15742 case 2061:
15743 case 9472:
15744 case 9473:
15745 case 9474:
15746 case 10915:
15747 case 10916:
15748 case 10917:
15749 case 17137:
15750 case 17138:
15751 case 17843:
15752 case 25233:
15753 case 25235:
15754 case 27608:
15755 case 38588:
15756 case 42420:
15757 case 43431:
15758 case 43516:
15759 case 43575:
15760 case 48070:
15761 case 48071:
15762 case 56331:
15763 case 56919:
15764 case 66104:
15765 case 68023:
15766 case 68024:
15767 case 68025:
15768 case 71595:
15769 case 71782:
15770 case 71783:
15771 break;
15772 default:
15773 continue;
15774 }
15775 }
15776 break;
15777
15778 case 37379:
15779 {
15781 continue;
15782 }
15783 break;
15784 case 37378:
15785 {
15787 continue;
15788 }
15789 break;
15790 case 45062:
15791 case 39950:
15792 {
15794 continue;
15795 }
15796 break;
15797 case 37234:
15798 case 37214:
15799 case 37601:
15800 {
15802 continue;
15803 }
15804 break;
15805 case 37237:
15806 {
15807 if (!CastingSpell)
15808 continue;
15809
15810 switch (CastingSpell->getId())
15811 {
15812
15813 case 403:
15814 case 529:
15815 case 548:
15816 case 915:
15817 case 943:
15818 case 6041:
15819 case 8246:
15820 case 9532:
15821 case 10391:
15822 case 10392:
15823 case 12167:
15824 case 13482:
15825 case 13527:
15826 case 14109:
15827 case 14119:
15828 case 15207:
15829 case 15208:
15830 case 15234:
15831 case 15801:
15832 case 16782:
15833 case 18081:
15834 case 18089:
15835 case 19874:
15836 case 20295:
15837 case 20802:
15838 case 20805:
15839 case 20824:
15840 case 22414:
15841 case 23592:
15842 case 25448:
15843 case 25449:
15844 case 26098:
15845 case 31764:
15846 case 34345:
15847 case 35010:
15848 case 36152:
15849 case 37273:
15850 case 37661:
15851 case 37664:
15852 case 38465:
15853 case 39065:
15854 case 41184:
15855 case 42024:
15856 case 43526:
15857 case 43903:
15858 case 45075:
15859 case 45284:
15860 case 45286:
15861 case 45287:
15862 case 45288:
15863 case 45289:
15864 case 45290:
15865 case 45291:
15866 case 45292:
15867 case 45293:
15868 case 45294:
15869 case 45295:
15870 case 45296:
15871 case 48698:
15872 case 48895:
15873 case 49237:
15874 case 49238:
15875 case 49239:
15876 case 49240:
15877 case 49418:
15878 case 49454:
15879 case 51587:
15880 case 51618:
15881 case 53044:
15882 case 53314:
15883 case 54843:
15884 case 55044:
15885 case 56326:
15886 case 56891:
15887 case 57780:
15888 case 57781:
15889 case 59006:
15890 case 59024:
15891 case 59081:
15892 case 59169:
15893 case 59199:
15894 case 59683:
15895 case 59863:
15896 case 60009:
15897 case 60032:
15898 case 61374:
15899 case 61893:
15900 case 63809:
15901 case 64098:
15902 case 64696:
15903 case 65987:
15904 case 68112:
15905 case 68113:
15906 case 68114:
15907 case 69567:
15908 case 69970:
15909 case 71136:
15910 case 71934:
15911 break;
15912 default:
15913 continue;
15914 }
15915 } break;
15916
15917 case 61082:
15918 {
15919 if (CastingSpell == NULL)
15920 continue;
15921
15922 switch (CastingSpell->getId())
15923 {
15924
15925 case 1454:
15926 case 1455:
15927 case 1456:
15928 case 4090:
15929 case 11687:
15930 case 11688:
15931 case 11689:
15932 case 27222:
15933 case 28830:
15934 case 31818:
15935 case 32553:
15936 case 57946:
15937 case 63321:
15938 break;
15939 default:
15940 continue;
15941 }
15942 }
15943 break;
15944
15945 case 37196:
15946 case 43838:
15947 {
15948 if (!CastingSpell)
15949 continue;
15950
15951 switch (CastingSpell->getId())
15952 {
15953 case 31804:
15954
15955 case 20184:
15956 case 53407:
15957
15958 case 20185:
15959 case 20267:
15960 case 20271:
15961 case 28775:
15962 case 57774:
15963
15964 case 20186:
15965 case 20268:
15966 case 53408:
15967
15968 case 20187:
15969
15970 case 31898:
15971 case 32220:
15972 case 41461:
15973
15974 case 20425:
15975 case 20467:
15976 case 29386:
15977 case 32778:
15978 case 33554:
15979 case 41368:
15980 case 41470:
15981 case 66005:
15982 case 68017:
15983 case 68018:
15984 case 68019:
15985 case 71551:
15986 break;
15987 default:
15988 continue;
15989 }
15990 }
15991 break;
15992 case 43837:
15993 {
15994 switch (CastingSpell->getId())
15995 {
15996
15997 case 19750:
15998 case 19939:
15999 case 19940:
16000 case 19941:
16001 case 19942:
16002 case 19943:
16003 case 25514:
16004 case 27137:
16005 case 33641:
16006 case 37249:
16007 case 37254:
16008 case 37257:
16009 case 48784:
16010 case 48785:
16011 case 57766:
16012 case 59997:
16013 case 66113:
16014 case 66922:
16015 case 68008:
16016 case 68009:
16017 case 68010:
16018 case 71930:
16019
16020 case 635:
16021 case 639:
16022 case 647:
16023 case 1026:
16024 case 1042:
16025 case 3472:
16026 case 10328:
16027 case 10329:
16028 case 13952:
16029 case 15493:
16030 case 25263:
16031 case 25292:
16032 case 27135:
16033 case 27136:
16034 case 29383:
16035 case 29427:
16036 case 29562:
16037 case 31713:
16038 case 32769:
16039 case 37979:
16040 case 43451:
16041 case 44479:
16042 case 46029:
16043 case 48781:
16044 case 48782:
16045 case 52444:
16046 case 56539:
16047 case 58053:
16048 case 66112:
16049 case 68011:
16050 case 68012:
16051 case 68013:
16052 break;
16053 default:
16054 continue;
16055 }
16056 }
16057 break;
16058 case 37529:
16059 {
16060 switch (CastingSpell->getId())
16061 {
16062
16063 case 7384:
16064 case 7887:
16065 case 11584:
16066 case 11585:
16067 case 14895:
16068 case 17198:
16069 case 24407:
16070 case 32154:
16071 case 37321:
16072 case 37529:
16073 case 43456:
16074 case 58516:
16075 case 65924:
16076 break;
16077 default:
16078 continue;
16079 }
16080 }
16081 break;
16082 case 37517:
16083 {
16084 switch (CastingSpell->getId())
16085 {
16086
16087 case 6572:
16088 case 6574:
16089 case 7379:
16090 case 11600:
16091 case 11601:
16092 case 12170:
16093 case 19130:
16094 case 25269:
16095 case 25288:
16096 case 28844:
16097 case 30357:
16098 case 40392:
16099 case 57823:
16100 break;
16101 case 37517:
16102 default:
16103 continue;
16104 }
16105 }
16106 break;
16107 case 38333:
16108 {
16110 continue;
16111 }
16112
16113
16114 case 40480:
16115 {
16116 if (CastingSpell == NULL)
16117 continue;
16118
16119 switch (CastingSpell->getId())
16120 {
16121
16122 case 172:
16123 case 6222:
16124 case 6223:
16125 case 7648:
16126 case 11671:
16127 case 11672:
16128 case 13530:
16129 case 16402:
16130 case 16985:
16131 case 17510:
16132 case 18088:
16133 case 18376:
16134 case 18656:
16135 case 21068:
16136 case 23642:
16137 case 25311:
16138 case 27216:
16139 case 28829:
16140 case 30938:
16141 case 31405:
16142 case 32063:
16143 case 32197:
16144 case 37113:
16145 case 37961:
16146 case 39212:
16147 case 39621:
16148 case 41988:
16149 case 47782:
16150 case 47812:
16151 case 47813:
16152 case 56898:
16153 case 57645:
16154 case 58811:
16155 case 60016:
16156 case 61563:
16157 case 65810:
16158 case 68133:
16159 case 68134:
16160 case 68135:
16161 case 70602:
16162 case 70904:
16163 case 71937:
16164 break;
16165 default:
16166 continue;
16167 }
16168 }
16169 break;
16170
16171
16172 case 37656:
16173 {
16174 if (CastingSpell == NULL)
16175 continue;
16176 }
16177 break;
16178
16179 case 40483:
16180 {
16181 if (CastingSpell == NULL)
16182 continue;
16184 continue;
16185 }
16186 break;
16187
16188
16189 case 40487:
16190 {
16191 switch (CastingSpell->getId())
16192 {
16193
16194 case 34120:
16195 case 49051:
16196 case 49052:
16197 case 56641:
16198 case 65867:
16199 break;
16200 default:
16201 continue;
16202 }
16203 }
16204 break;
16205
16206
16207 case 40459:
16208 {
16209 if (CastingSpell == NULL)
16210 continue;
16211
16212 switch (CastingSpell->getAreaAuraEffect())
16213 {
16214
16215 case 8242:
16216 case 15655:
16217 case 23922:
16218 case 23923:
16219 case 23924:
16220 case 23925:
16221 case 25258:
16222 case 29684:
16223 case 30356:
16224 case 30688:
16225 case 46762:
16226 case 47487:
16227 case 47488:
16228 case 49863:
16229 case 59142:
16230 case 69903:
16231 case 72645:
16232
16233 case 23880:
16234 case 23881:
16235 case 23885:
16236 case 23892:
16237 case 23893:
16238 case 23894:
16239 case 25251:
16240 case 30335:
16241 case 30474:
16242 case 30475:
16243 case 30476:
16244 case 31996:
16245 case 31997:
16246 case 31998:
16247 case 33964:
16248 case 35123:
16249 case 35125:
16250 case 35947:
16251 case 35948:
16252 case 35949:
16253 case 39070:
16254 case 39071:
16255 case 39072:
16256 case 40423:
16257 case 55968:
16258 case 55969:
16259 case 55970:
16260 case 57790:
16261 case 57791:
16262 case 57792:
16263 case 60017:
16264 case 71938:
16265
16266 case 9347:
16267 case 12294:
16268 case 13737:
16269 case 15708:
16270 case 16856:
16271 case 17547:
16272 case 19643:
16273 case 21551:
16274 case 21552:
16275 case 21553:
16276 case 24573:
16277 case 25248:
16278 case 27580:
16279 case 29572:
16280 case 30330:
16281 case 31911:
16282 case 32736:
16283 case 35054:
16284 case 37335:
16285 case 39171:
16286 case 40220:
16287 case 43441:
16288 case 43529:
16289 case 44268:
16290 case 47485:
16291 case 47486:
16292 case 57789:
16293 case 65926:
16294 case 67542:
16295 case 68782:
16296 case 68783:
16297 case 68784:
16298 case 71552:
16299 break;
16300 default:
16301 continue;
16302 }
16303 }
16304 break;
16305 case 28804:
16306 {
16307 if (!CastingSpell)
16308 continue;
16309 }
16310 break;
16311
16312
16313 case 35087:
16314 {
16315 if (CastingSpell == NULL)
16316 continue;
16318 continue;
16319 }
16320 break;
16321
16322
16323 case 40452:
16324 {
16325 if (CastingSpell == NULL)
16326 continue;
16327
16328 switch (CastingSpell->getId())
16329 {
16330
16331 case 33878:
16332 case 33986:
16333 case 33987:
16334 case 48563:
16335 case 48564:
16336
16337 case 33876:
16338 case 33982:
16339 case 33983:
16340 case 48565:
16341 case 48566:
16342 break;
16343 default:
16344 continue;
16345 }
16346 }
16347 break;
16348 case 40445:
16349 {
16350 if (CastingSpell == NULL)
16351 continue;
16352
16353 switch (CastingSpell->getId())
16354 {
16355
16356 case 2912:
16357 case 8949:
16358 case 8950:
16359 case 8951:
16360 case 9875:
16361 case 9876:
16362 case 21668:
16363 case 25298:
16364 case 26986:
16365 case 35243:
16366 case 38935:
16367 case 40344:
16368 case 48464:
16369 case 48465:
16370 case 65854:
16371 case 67947:
16372 case 67948:
16373 case 67949:
16374 case 75332:
16375 break;
16376 default:
16377 continue;
16378 }
16379 }
16380 break;
16381 case 40446:
16382 {
16383 if (CastingSpell == NULL)
16384 continue;
16385
16386 switch (CastingSpell->getId())
16387 {
16388
16389 case 774:
16390 case 1058:
16391 case 1430:
16392 case 2090:
16393 case 2091:
16394 case 3627:
16395 case 8070:
16396 case 8910:
16397 case 9839:
16398 case 9840:
16399 case 9841:
16400 case 12160:
16401 case 15981:
16402 case 20664:
16403 case 20701:
16404 case 25299:
16405 case 26981:
16406 case 26982:
16407 case 27532:
16408 case 28716:
16409 case 28722:
16410 case 28723:
16411 case 28724:
16412 case 31782:
16413 case 32131:
16414 case 38657:
16415 case 42544:
16416 case 48440:
16417 case 48441:
16418 case 53607:
16419 case 64801:
16420 case 66065:
16421 case 67971:
16422 case 67972:
16423 case 67973:
16424 case 69898:
16425 case 70691:
16426 case 71142:
16427 break;
16428 default:
16429 continue;
16430 }
16431 }
16432 break;
16433
16434
16435 case 40441:
16436 {
16437 if (CastingSpell == NULL)
16438 continue;
16439
16440 switch (CastingSpell->getId())
16441 {
16442
16443 case 589:
16444 case 594:
16445 case 970:
16446 case 992:
16447 case 2767:
16448 case 10892:
16449 case 10893:
16450 case 10894:
16451 case 11639:
16452 case 14032:
16453 case 15654:
16454 case 17146:
16455 case 19776:
16456 case 23268:
16457 case 23952:
16458 case 24212:
16459 case 25367:
16460 case 25368:
16461 case 27605:
16462 case 30854:
16463 case 30898:
16464 case 34441:
16465 case 34941:
16466 case 34942:
16467 case 37275:
16468 case 41355:
16469 case 46560:
16470 case 48124:
16471 case 48125:
16472 case 57778:
16473 case 59864:
16474 case 60005:
16475 case 60446:
16476 case 65541:
16477 case 68088:
16478 case 68089:
16479 case 68090:
16480 case 72318:
16481 case 72319:
16482 break;
16483 default:
16484 continue;
16485 }
16486 }
16487 break;
16488
16489
16490 case 40440:
16491 {
16492 if (CastingSpell == NULL)
16493 continue;
16494
16495 switch (CastingSpell->getId())
16496 {
16497
16498 case 139:
16499 case 6074:
16500 case 6075:
16501 case 6076:
16502 case 6077:
16503 case 6078:
16504 case 8362:
16505 case 10927:
16506 case 10928:
16507 case 10929:
16508 case 11640:
16509 case 22168:
16510 case 23895:
16511 case 25058:
16512 case 25221:
16513 case 25222:
16514 case 25315:
16515 case 27606:
16516 case 28807:
16517 case 31325:
16518 case 34423:
16519 case 36679:
16520 case 36969:
16521 case 37260:
16522 case 37978:
16523 case 38210:
16524 case 41456:
16525 case 44174:
16526 case 45859:
16527 case 46192:
16528 case 46563:
16529 case 47079:
16530 case 48067:
16531 case 48068:
16532 case 49263:
16533 case 56332:
16534 case 57777:
16535 case 60004:
16536 case 61967:
16537 case 62333:
16538 case 62441:
16539 case 66177:
16540 case 66537:
16541 case 67675:
16542 case 68035:
16543 case 68036:
16544 case 68037:
16545 case 71932:
16546 break;
16547 default:
16548 continue;
16549 }
16550 }
16551 break;
16552
16553
16554 case 37445:
16555 {
16556 if (!CastingSpell)
16557 continue;
16558
16559 switch (CastingSpell->getId())
16560 {
16561
16562 case 5405:
16563 case 10052:
16564 case 10057:
16565 case 10058:
16566 case 18385:
16567 case 27103:
16568 case 33394:
16569 case 42987:
16570 case 42988:
16571 case 71565:
16572 case 71574:
16573 break;
16574 default:
16575 continue;
16576 }
16577 }
16578 break;
16579 case 16886:
16580 {
16581
16583 }
16584 break;
16585 case 38395:
16586 {
16587 if (CastingSpell == NULL)
16588 continue;
16589
16590 switch (CastingSpell->getId())
16591 {
16592
16593 case 348:
16594 case 707:
16595 case 1094:
16596 case 2941:
16597 case 8981:
16598 case 9034:
16599 case 9275:
16600 case 9276:
16601 case 11665:
16602 case 11667:
16603 case 11668:
16604 case 11962:
16605 case 11984:
16606 case 12742:
16607 case 15505:
16608 case 15506:
16609 case 15570:
16610 case 15661:
16611 case 15732:
16612 case 15733:
16613 case 17883:
16614 case 18542:
16615 case 20294:
16616 case 20787:
16617 case 20800:
16618 case 20826:
16619 case 25309:
16620 case 27215:
16621 case 29928:
16622 case 36637:
16623 case 36638:
16624 case 37668:
16625 case 38805:
16626 case 38806:
16627 case 41958:
16628 case 44267:
16629 case 44518:
16630 case 46042:
16631 case 46191:
16632 case 47810:
16633 case 47811:
16634 case 75383:
16635
16636 case 172:
16637 case 6222:
16638 case 6223:
16639 case 7648:
16640 case 11671:
16641 case 11672:
16642 case 13530:
16643 case 16402:
16644 case 16985:
16645 case 17510:
16646 case 18088:
16647 case 18376:
16648 case 18656:
16649 case 21068:
16650 case 23642:
16651 case 25311:
16652 case 27216:
16653 case 28829:
16654 case 30938:
16655 case 31405:
16656 case 32063:
16657 case 32197:
16658 case 37113:
16659 case 37961:
16660 case 39212:
16661 case 39621:
16662 case 41988:
16663 case 47782:
16664 case 47812:
16665 case 47813:
16666 case 56898:
16667 case 57645:
16668 case 58811:
16669 case 60016:
16670 case 61563:
16671 case 65810:
16672 case 68133:
16673 case 68134:
16674 case 68135:
16675 case 70602:
16676 case 70904:
16677 case 71937:
16678 break;
16679 default:
16680 continue;
16681 }
16682 }
16683 break;
16684 }
16685 }
16686
16687 if (spellId == 17364 || spellId == 32175 || spellId == 32176)
16688 continue;
16689 if (spellId == 22858 &&
isInBack(victim))
16690 continue;
16691
16692 spell_proc->
castSpell(victim, CastingSpell);
16693
16694 if (origId == 39805)
16695 {
16697 }
16698
16700 happenedProcs.push_back(spell_proc);
16701 }
16702
16703 if (!happenedProcs.empty())
16704 {
16705 for (auto procItr = happenedProcs.begin(); procItr != happenedProcs.end();)
16706 {
16707 auto proc = *procItr;
16708 if (proc->getCreatedByAura() != nullptr)
16709 proc->getCreatedByAura()->removeCharge();
16710
16711 procItr = happenedProcs.erase(procItr);
16712 }
16713 }
16714
16715
16716
16717
16718
16719
16720
16721
16722
16723
16724
16725
16726
16727
16728
16729
16730
16731
16732
16733
16734
16735
16736
16737
16738
16739
16740
16741
16742
16743
16744
16745
16746
16747
16748
16749
16750
16751
16752
16753
16754
16755
16756
16757
16758
16759
16760
16761
16762
16763
16764
16765
16766
16767
16768
16769
16770
16771
16772
16773
16774
16775
16776
16777
16778
16779
16780
16781
16782
16783
16784
16785
16786
16787
16788
16789
16790
16791
16792
16793
16794
16795
16796
16797
16798
16799
16800
16801
16802
16803
16804
16805
16806
16807
16808
16809
16810
16811
16812
16813
16814
16815
16816
16817
16818
16819
16820
16821
16822
16823
16824
16825
16826
16827
16828
16829
16830
16831
16832
16833
16834
16835
16836
16837
16838
16839
16840
16841
16842
16843
16844
16845
16846
16847
16848
16849
16850
16851
16852
16853
16854
16855
16856
16857
16858
16859
16860
16861
16862
16863
16864
16865
16866
16867
16868
16869
16870
16871
16872
16873
16874
16875
16876
16877
16878
16879
16880
16881
16882
16883
16884
16885
16886
16887
16888
16889
16890
16891
16892
16893
16894
16895
16896
16897
16898
16899
16900
16901
16902
16903
16904
16905
16906
16907
16908
16909
16910
16911
16912
16913
16914
16915
16916
16917
16918
16919
16920
16921
16922
16923
16924
16925
16926
16927
16928
16929
16930
16931
16932
16933
16934
16935
16936
16937
16938
16939
16940
16941
16942
16943
16944
16945
16946
16947
16948
16949
16950
16951
16952
16953
16954
16955
16956
16957
16958
16959
16960
16961
16962
16963
16964
16965 if (can_delete)
16967
16968 return resisted_dmg;
16969}
@ SPELL_AURA_PROC_TRIGGER_SPELL_WITH_VALUE
@ PROC_EVENT_DO_CASTER_PROCS_ONLY
@ PROC_EVENT_DO_TARGET_PROCS_ONLY
@ SPELL_EFFECT_ADD_COMBO_POINTS
@ SPELL_FLAG_IS_FINISHING_MOVE
SERVER_DECL WDB::WDBContainer< WDB::Structures::SpellDurationEntry > sSpellDurationStore
uint32_t SERVER_DECL GetDuration(WDB::Structures::SpellDurationEntry const *dur)
SERVER_DECL WDB::WDBContainer< WDB::Structures::SpellShapeshiftFormEntry > sSpellShapeshiftFormStore
void setCharges(uint16_t count, bool sendUpdatePacket=true)
ItemProperties const * getItemProperties() const
DamageInfo doSpellHealing(Unit *victim, uint32_t spellId, float_t heal, bool isTriggered=false, bool isPeriodic=false, bool isLeech=false, bool forceCrit=false, Spell *spell=nullptr, Aura *aur=nullptr, AuraEffectModifier *aurEff=nullptr)
DamageInfo doSpellDamage(Unit *victim, uint32_t spellId, float_t damage, uint8_t effIndex, bool isTriggered=false, bool isPeriodic=false, bool isLeech=false, bool forceCrit=false, Spell *spell=nullptr, Aura *aur=nullptr, AuraEffectModifier *aurEff=nullptr)
bool isInBack(Object *target)
int32_t calculateEffectValue(uint8_t effIndex, Unit *unitCaster=nullptr, Item *itemCaster=nullptr, SpellForcedBasePoints forcedBasePoints=SpellForcedBasePoints()) const
virtual void castSpell(Unit *victim, SpellInfo const *CastingSpell)
SpellInfo const * getSpell() const
SpellInfo const * getOriginalSpell() const
Aura * getCreatedByAura() const
uint32_t getProcInterval() const
void setOverrideEffectDamage(uint8_t effIndex, int32_t damage)
Unit * getProcOwner() const
float_t getProcsPerMinute() const
void skipOnNextHandleProc(bool)
bool checkClassMask(SpellInfo const *castingSpell) const
void setLastTriggerTime(uint32_t time)
virtual bool canProc(Unit *victim, SpellInfo const *castingSpell)
bool isCastedOnProcOwner() const
bool isSkippingHandleProc() const
bool checkExtraProcFlags(Unit *procOwner, DamageInfo damageInfo) const
virtual bool doEffect(Unit *victim, SpellInfo const *castingSpell, uint32_t procFlag, uint32_t dmg, uint32_t abs, uint32_t weapon_damage_type)
uint32_t getLastTriggerTime() const
void setUnitTarget(Unit *_unit)
DamageInfo strike(Unit *pVictim, WeaponDamageType weaponType, SpellInfo const *ability, int32_t add_damage, int32_t pct_dmg_mod, uint32_t exclusive_damage, bool disable_proc, bool skip_hit_check, bool force_crit=false, Spell *castingSpell=nullptr)
uint32_t getRandomUInt(uint32_t end)
WeaponDamageType weaponType